{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Python notebook for case-study run on the CICIDS security dataset, by William Bridges (part of BSc dissertation work)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Code set-up: Imports, Packages, Environment variables, and Methods\n",
    "\n",
    "The software versions used are:\n",
    "- The Python3 version used for this work is: Python 3.8.x\n",
    "- The scikit-learn version used is: scikit-learn 0.24.0\n",
    "- The seaborn version used is: 0.11.1\n",
    "- The Pandas version used is: 1.1.5 (although 1.2.0 was released recently, this should also work)\n",
    "\n",
    "Before running, please run these commands via pip, in the terminal:\n",
    "- pip install pandas\n",
    "- pip install scikit-learn\n",
    "- pip install scikit-plot\n",
    "- pip install seaborn"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import os, sys # For accessing Python Modules in the System Path (for accessing the Statistical Measures modules)\n",
    "# See: https://stackoverflow.com/a/39311677\n",
    "nb_dir = os.path.split(os.getcwd())[0]\n",
    "if nb_dir not in sys.path:\n",
    "    sys.path.append(nb_dir)\n",
    "\n",
    "# Importing local modules (statistical distance measures)\n",
    "from CVM_Distance import CVM_Dist as Cramer_Von_Mises_Dist\n",
    "from Anderson_Darling_Distance import Anderson_Darling_Dist\n",
    "from Kolmogorov_Smirnov_Distance import Kolmogorov_Smirnov_Dist\n",
    "from KuiperDistance import Kuiper_Dist\n",
    "from WassersteinDistance import Wasserstein_Dist\n",
    "from DTS_Distance import DTS_Dist # Combo of Anderson_Darling and CVM distance.\n",
    "\n",
    "import pandas as pd # For DataFrames, Series, and reading csv data in.\n",
    "import seaborn as sns # Graphing, built ontop of MatPlot for ease-of-use and nicer diagrams.\n",
    "import matplotlib.pyplot as plt # MatPlotLib for graphing data visually. Seaborn more likely to be used.\n",
    "import numpy as np # For manipulating arrays and changing data into correct formats for certain libraries\n",
    "import sklearn # For Machine Learning algorithms\n",
    "import scikitplot # Confusion matrix plotting\n",
    "from sklearn.decomposition import PCA # For PCA dimensionality reduction technique\n",
    "from sklearn.preprocessing import StandardScaler # For scaling to unit scale, before PCA application\n",
    "from sklearn.preprocessing import LabelBinarizer # For converting categorical data into numeric, for modeling stage\n",
    "from sklearn.model_selection import StratifiedKFold # For optimal train_test splitting, for model input data\n",
    "from sklearn.model_selection import train_test_split # For basic dataset splitting\n",
    "from sklearn.neighbors import KNeighborsClassifier # K-Nearest Neighbors ML classifier (default n. of neighbors = 5)\n",
    "from scikitplot.metrics import plot_confusion_matrix # For plotting confusion matrices\n",
    "from sklearn.metrics import accuracy_score # For getting the accuracy of a model's predictions\n",
    "from sklearn.metrics import classification_report # Various metrics for model performance\n",
    "from sklearn.neural_network import MLPClassifier # For Neural Network classifier\n",
    "from sklearn.linear_model import LogisticRegression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Methods\n",
    "\n",
    "Documentation for each method lives a cell above the method code. Method code is described and explained like this, and **all methods live in this section**."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Clean_dataset()** method is used to remove infinite and Nan value errors (in the original dataset), which can cause issues in the PCA transform step.\n",
    "\n",
    "- **assert** keyword can be used for testing purposes. If the input param is not of type Pandas Dataframe, then the error message will be shown. Thus, you 'assert' that a pd.Dataframe is input.\n",
    "\n",
    "\n",
    "- **.dropna(inplace=True)** drops any rows which contain NaN/ Null values. NaN values would cause issues later on, with model training and other functions. A lot of functions require NaN values to be removed to work (see docs: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html).\n",
    "\n",
    "Code reference: https://stackoverflow.com/a/46581125 (with a minor change = removed the conversion to float64 type)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def clean_dataset(df):\n",
    "    assert isinstance(df, pd.DataFrame), \"df needs to be a pd.DataFrame\"\n",
    "    df.dropna(inplace=True)\n",
    "    indices_to_keep = ~df.isin([np.nan, np.inf, -np.inf]).any(1)\n",
    "    return df[indices_to_keep]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**get_PCA_feature_names()** method is used to generate feature names for the number of PCA components passed in as a param. Returns a list of feature names for principal component column headings, in a Pandas Dataframe.\n",
    "\n",
    "- No special code here, just pure Python code. Instantiating a list, and populating it with strings for the PCA header names. Then, appending each to the list and returning it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_PCA_feature_names(num_of_pca_components):\n",
    "    feature_names = []\n",
    "    for i in range(num_of_pca_components):    \n",
    "        feature_names.append(f\"Principal component {i+1}\")\n",
    "    return feature_names"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**train_model_predict()** method is used to train an input model, using StratifiedFKold for train_test splitting, and uses the trained model to predict the test data. It outputs a classification report which has various useful prediction metrics displayed. It also outputs a confusion matrix for the model's predictions. Finally, it returns the accuracy of the model's predictions.\n",
    "\n",
    "- 1) The for loop ('for train_index, test_index in skf.split(X, y):') is required as it uses the indexes that the  StratifiedKFold model (**skf**) produces to select the appropriate data rows/ points required for each data split.\n",
    "\n",
    "\n",
    "- 2) The 'X_train, X_test = X.iloc[train_index], X.iloc[test_index]' uses the skf indexes to find the index location (iloc) of each index, so it can extract the correct rows for the train_test split.\n",
    "\n",
    "\n",
    "- 3) The 'reshaped_y_train = np.asarray(y_train).reshape(-1, 1)' is required to reshape the label (y_train and y_test) to a 1D array, rather than a 2D array that is output by the train_test split.\n",
    "\n",
    "\n",
    "- 4) The 'model.fit(X_train, reshaped_y_train.ravel())' uses the input model and fits it (trains the model) on the training data. The '.ravel()' method just reshapes the label array again (flattens it) to match the input structure required by the sklearn method.\n",
    "\n",
    "\n",
    "- 5) The 'pred_y = model.predict(X_test)' uses the, now trained, model to attempt to predict the test data (X_test is passed in, and it predicts the label, pred_y).\n",
    "\n",
    "\n",
    "- 6) The 'score = classification_report(reshaped_y_test, pred_y)' calculates prediction metrics based upon the model's predictions. More info in the docs: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html\n",
    "\n",
    "The rest is self-explanatory. A confusion matrix is plotted and output after the method runs. The accuracy of the model is returned back to the caller, as well as other data required for the statistical distance measure methods."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# See documentation above to understand what each step does, and why.\n",
    "def train_model_predict(model, model_name, X, y, skf):\n",
    "    for train_index, test_index in skf.split(X, y): # 1)\n",
    "        X_train, X_test = X.iloc[train_index], X.iloc[test_index] # 2)\n",
    "        y_train, y_test = y.iloc[train_index], y.iloc[test_index]\n",
    "\n",
    "        reshaped_y_train = np.asarray(y_train).reshape(-1, 1) # 3)\n",
    "        reshaped_y_test = np.asarray(y_test).reshape(-1, 1)\n",
    "        \n",
    "    model.fit(X_train, reshaped_y_train.ravel()) # 4)\n",
    "    pred_y = model.predict(X_test) # 5)\n",
    "    score = classification_report(reshaped_y_test, pred_y) # 6)\n",
    "    print('Classification report: \\n', score, '\\n')\n",
    "    plot_confusion_matrix(reshaped_y_test, pred_y, title='Confusion Matrix for {}'.format(model_name))\n",
    "        \n",
    "    return accuracy_score(reshaped_y_test, pred_y), X_train, X_test, y_train, pred_y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**get_shuffled_stratifiedKFold_train_test_split()** method is for retrieving shuffled, StratifiedKFold train test split data. It's similar to the 'train_model_predict()' method above- see this for details behind each step/ line of code. This is industry-standard for dealing with datasets which have a large class imbalance, such as this one.\n",
    "\n",
    "The method takes in X (dataset without the labels/ classes) and y (the label/ class feature). It instantiates a new StratifiedKFold 'model' which comes from the 'sklearn.model_selection' library. The **n_splits** parameter denotes how many folds (K) are to be run. The **Shuffle** parameter denotes that each split will be shuffled and therefore randomized to get varying shuffles between runs. This is ideal, as each permutation to be run should be as varied as possible to give good variance in plotting- so the SafeML idea can be showcased & plotted optimally.\n",
    "\n",
    "The for loop uses the StratifiedKFold 'model' to extract indices that have been found by the skf model. The label/ class feature needs to be reshaped in SkLearn, as un-shaped label data causes exceptions/ errors when attempting to train, predict, or use any SkLearn ML classifiers/ models.\n",
    "\n",
    "Finally, all the extracted data is returned.\n",
    "\n",
    "See docs here: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedKFold.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_shuffled_stratifiedKFold_train_test_split(X, y):\n",
    "    # Shuffle to True, to get different shuffles each time. Permutations being varied is the goal here.\n",
    "    skf = StratifiedKFold(n_splits=3, shuffle=True)\n",
    "    \n",
    "    # For loop to get index for training and test data, using StratifiedKFold (3 splits)\n",
    "    for train_index, test_index in skf.split(X, y):\n",
    "        X_train, X_test = X.iloc[train_index], X.iloc[test_index]\n",
    "        y_train, y_test = y.iloc[train_index], y.iloc[test_index]\n",
    "        # NOTE: Sometimes 'reshape' needed for label, so that the model can use it (required in SciKit)\n",
    "        #reshaped_y_train = np.asarray(y_train).reshape(-1, 1)\n",
    "        #reshaped_y_test = np.asarray(y_test).reshape(-1, 1)\n",
    "        \n",
    "    # After for loop ends, all training and test data has been retrieved thus can return it.\n",
    "    return X_train, X_test, y_train, y_test"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Neural Networks (MLP), quick explanation/ clarification (for below method's code explanation)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Neural Networks, and specifically the sklearn Multi-Layer Perceptron (MLPClassifier), aim to model the brain's neurons and its inner workings. \n",
    "\n",
    "A set of input values and weights are evaluated, and passed into the first layer of the neural network. The neural network can have multiple layers, with a varied amount of nodes (via hyperparameters) in each layer. \n",
    "\n",
    "Hyperparameters are the parameters of the model that- if changed- affect the learning rate and prediction accuracy.\n",
    "\n",
    "If an input weight, X, along with a learning rate, Y, evaluates to a value above a given **threshold** (like a neuron's Potassium & Sodium based Action Potential threshold), then just like a real neuron, the neuron will fire and send information to the next node in the layer, or possibly the output node. \n",
    "\n",
    "The output node will take all of the processed information, from all the nodes in each interconnected (fully-connected MLP) layer, and a classification result will be given.\n",
    "\n",
    "The inner workings of large Neural Nets are still un-explainable (as of March 2021), which is why they're referred to as a **Black-box classifier/ model**.\n",
    "\n",
    "This is how a Neural Network learns and predicts a label/ class based on input data. The methods by which learning occurs (Backpropagation, Momentum, Learning rate input, Weight adjustments, etc...) is beyond the scope of this solution.\n",
    "\n",
    "From docs: \"Multi-layer Perceptron classifier. This model optimizes the log-loss function using LBFGS or stochastic gradient descent\".\n",
    "\n",
    "Important note from the default MLP params, from the docs: \n",
    "- \"Note: The default solver ‘adam’ works pretty well on relatively large datasets (with thousands of training samples or more) in terms of both training time and validation score. For small datasets, however, ‘lbfgs’ can converge faster and perform better\". \n",
    "\n",
    "###### So the 'lbfgs solver' hyperparameter may not be ideal for this larger dataset. Thus, the 'Adam solver' will be used. \n",
    "\n",
    "(Code references: https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPClassifier.html)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Finding the optimal Neural Network hyperparameters is hard\n",
    "\"So what about size of the hidden layer(s)--how many neurons? There are some empirically-derived rules-of-thumb, of these, the most commonly relied on is 'the optimal size of the hidden layer is usually between the size of the input and size of the output layers\" by Jeff Heaton (https://stats.stackexchange.com/questions/181/how-to-choose-the-number-of-hidden-layers-and-nodes-in-a-feedforward-neural-netw). As per the reference, a low amount of nodes in the hidden layer can be ideal for a particular dataset. \n",
    "\n",
    "If the Input size is around 20 PCA component features, with 1 output node (for the label), then between 10 and 15 nodes, with 1 hidden layer, would be following these heuristics. It can be incredibly hard to train larger Neural Network correctly, although it has been proved- theoretically- that a Neural Network can solve any task, as long as it's large enough and has the correct hyperparameter tuning. This is an NP-hard problems though.\n",
    "\n",
    "See docs: https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPClassifier.html"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**train_and_predict_Neural_Network_MLP_model()** method trains a Neural Network (MLP) classifier and uses this to predict the labels of the X_test data. See more in-depth information about Neural Networks above^^^. For in-depth info on the hyperparameter tuning in SciKit (will be similar to TensorFlow & Keras, PyTorch, FastAI, and any other ML library), see below... (https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPClassifier.html)\n",
    "\n",
    "**Hyperparameter explanations:**\n",
    "- **activiation=** ReLu is an industry-standard activation function \"rectified linear unit function, f(x) = max(0, x)\" (SciKit docs).\n",
    "- **hidden_layer_sizes=** (x,) means 1 hidden layer with x nodes in. Each comma added defines a new hidden layer.\n",
    "- **solver=** Adam solver works efficiently on large datasets, and is the \"stochastic gradient-based optimizer\" (SciKit docs).\n",
    "- **alpha=** is a penalty (regularization term) parameter.\n",
    "- **batch_size=** refers to the size of mini-batches for stochastic optimizers. If the solver is ‘lbfgs’, the classifier will not use minibatch. When set to “auto”, batch_size=min(200, n_samples).\n",
    "- **learning_rate=** is the \"learning rate schedule for weight updates\". Setting as 'constant' would keep the learning rate the same as the learning_rate_init value, even if two epochs were to not decrease by at least 'tol', which is not ideal. Thus, an 'adaptive' learning rate is used and this \"keeps the learning rate constant to ‘learning_rate_init’ as long as training loss keeps decreasing. Each time two consecutive epochs fail to decrease training loss by at least tol, or fail to increase validation score by at least tol if ‘early_stopping’ is on, the current learning rate is divided by 5\" (SciKit docs).\n",
    "- **learning_rate_init=** is just the initial learning rate value. It \"controls the step-size in updating the weights\".\n",
    "- **max_iter=** refers to the maximum number of iterations the MLP classifier will run through (each iteration/ epoch updates the node weights in accordance to other hyperparam info e.g. activation function, alpha, learning rate, etc... This is to try and increase the predictive capability of the MLP model). SciKit docs state \"For stochastic solvers (‘sgd’, ‘adam’), note that this determines the number of epochs (how many times each data point will be used), not the number of gradient steps\". Although, the more iterations, the longer the training takes. After a certain threshold, more iterations will not improve the predictive capability of the MLP model.\n",
    "\n",
    "Note: Could add if statement to print out confusion matrix x amount of times, during this method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def train_and_predict_Neural_Network_MLP_model(X_train, X_test, y_train, y_test):\n",
    "    # Instantiating new Neural Network classifier and setting Hyperparameters\n",
    "    Neural_Net_model = MLPClassifier(hidden_layer_sizes=(10,), activation='relu',\n",
    "                                    solver='adam', alpha=0.0001, batch_size='auto',\n",
    "                                    learning_rate='adaptive', learning_rate_init=0.005,\n",
    "                                    max_iter=400)\n",
    "    \n",
    "    # Fitting the model is synonymous to training the model. Need to call .ravel() to get array in correct format.\n",
    "    Neural_Net_model.fit(X_train, y_train.ravel())\n",
    "    \n",
    "    # Using the model to predict the label/ classes, based upon X_test data only. This is the model's answers.\n",
    "    pred_y = Neural_Net_model.predict(X_test) \n",
    "    \n",
    "    # Returning model answers and the accuracy of the model i.e. how well it predicts the answers.\n",
    "    return pred_y, accuracy_score(y_test, pred_y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**get_statistical_dist_measures_for_class_result()** method is for calculating the ECDF-based statistical distance measures for the entire dataset. Currently, the Python implementations of the statistical dist measures are **Univariate** meaning that they require each feature to be passed in, 1 at a time (**as of 8th April 2021**). Thus, an empty numpy array is set-up, with the size matching the number of features. Each index holds the specific statistical distance measure result, for the ith feature/ column.\n",
    "\n",
    "The accuracy parameter holds some model accuracy that is to be passed in, so the result dictionary can be correctly returned in the perfect format (for the results table).\n",
    "\n",
    "The X_train_L and X_test_L parameters hold the X_train and X_test data (a Pandas Dataframe i.e. 2D array, like a results table) for the dataset used in this Jupyter Notebook. The '**_L**' stands for 'label' so essentially this holds the train and test data, for a specific label/ class, based upon a query.\n",
    "\n",
    "This method calculates all the Univariate results, and then calculates the mean/ average of the entire numpy array. This essentially retrieves the correct distance/ value for the ECDF-based statistical distance measure, as the mean is the correct value that should be returned. The mean represents the distance for the entire dataset, for that specific label/ class.\n",
    "\n",
    "Finally, it returns a Python dictionary which is used to efficiently create a Pandas Dataframe results table, for plotting of the results. It's just a more efficient way of appending dynamic results to a Pandas Dataframe object. See the links and documentation for the code, where this method is called from, for more info.\n",
    "\n",
    "See https://stackoverflow.com/a/17496530. Fast way to 'append' to dataframe for results table."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# send to top and add documentation\n",
    "def get_statistical_dist_measures_for_class_result(accuracy, X_train_L, X_test_L):\n",
    "    # Can use this to loop over all the features, since the ECDF Python methods are currently Univariate only\n",
    "    num_of_features = len(X_train_L.columns)\n",
    "    \n",
    "    # Instantiate empty arrays with large enough size, to hold statistical distance data\n",
    "    CVM_distances = np.zeros(num_of_features)\n",
    "    Anderson_Darling_distances = np.zeros(num_of_features)\n",
    "    Kolmogorov_Smirnov_distances = np.zeros(num_of_features)\n",
    "    Kuiper_distances = np.zeros(num_of_features)\n",
    "    Wasserstein_distances = np.zeros(num_of_features)\n",
    "    DTS_distances = np.zeros(num_of_features)\n",
    "\n",
    "    for i in range(0, num_of_features):\n",
    "        # iloc[:, i] allows selection of the ith feature in the Pandas dataframe\n",
    "        # Calling the methods from the imported Python modules (see import section at top of notebook)\n",
    "        CVM_distances[i] = Cramer_Von_Mises_Dist(X_train_L.iloc[:, i], X_test_L.iloc[:, i])\n",
    "        Anderson_Darling_distances[i] = Anderson_Darling_Dist(X_train_L.iloc[:, i], X_test_L.iloc[:, i])\n",
    "        Kolmogorov_Smirnov_distances[i] = Kolmogorov_Smirnov_Dist(X_train_L.iloc[:, i], X_test_L.iloc[:, i])\n",
    "        Kuiper_distances[i] = Kuiper_Dist(X_train_L.iloc[:, i], X_test_L.iloc[:, i])\n",
    "        Wasserstein_distances[i] = Wasserstein_Dist(X_train_L.iloc[:, i], X_test_L.iloc[:, i])\n",
    "        DTS_distances[i] = DTS_Dist(X_train_L.iloc[:, i], X_test_L.iloc[:, i])\n",
    "        \n",
    "    # Computing mean/ average, to get ECDF distance of full dataset. Float64 to keep accuracy high.\n",
    "    # See: https://numpy.org/doc/stable/reference/generated/numpy.mean.html\n",
    "    CVM_distance = np.mean(CVM_distances, dtype=np.float64)\n",
    "    Anderson_Darling_distance = np.mean(Anderson_Darling_distances, dtype=np.float64)\n",
    "    Kolmogorov_Smirnov_distance = np.mean(Kolmogorov_Smirnov_distances, dtype=np.float64)\n",
    "    Kuiper_distance = np.mean(Kuiper_distances, dtype=np.float64)\n",
    "    Wasserstein_distance = np.mean(Wasserstein_distances, dtype=np.float64)\n",
    "    DTS_distance = np.mean(DTS_distances, dtype=np.float64)\n",
    "    \n",
    "    # Returning dictionary, for efficient and fast DataFrame creation. Returns mean for each distance.\n",
    "    # See https://stackoverflow.com/a/17496530. Fast way to 'append' to dataframe for results table.\n",
    "    # PRESERVE THE ORDERING\n",
    "    return {'Accuracy': accuracy,\n",
    "            'Anderson_Darling_dist': Anderson_Darling_distance,\n",
    "            'CVM_dist': CVM_distance,\n",
    "            'DTS_dist':DTS_distance,\n",
    "            'Kolmogorov_Smirnov_dist':Kolmogorov_Smirnov_distance,\n",
    "            'Kuiper_dist': Kuiper_distance,\n",
    "            'Wasserstein_dist': Wasserstein_distance}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**get_X_train_and_test_data_for_given_label()** method is used to get the X_train and X_test data rows that match the desired class/ label input, in the parameter. \n",
    "\n",
    "The **labels** parameter holds a numeric array, representing the number of classes/ labels in the y_train and y_test variables e.g. labels = [0, 1], which denotes that there are 2 classes/ labels in the incoming y_train and test parameters.\n",
    "\n",
    "The **label_index** parameter holds the specific index for the **labels** array, to denote which specific class/ label is to be used e.g. label_index = 0, which denotes that label/ class 0 is the one to be queried for in the X_train and X_test data.\n",
    "\n",
    "The **pred_y** parameter holds the model's predictions for which class a row should be (from fitting and predicting, using a model). This is used to query the X_test data to figure out how different the X_test and pred_y is from each other- as this is essentially what is needed for calculating the ECDF-based statistical distance measures for a class.\n",
    "\n",
    "The other params **X_train, X_test, y_train, y_test** are just the dataset split done, for a model to trained. These are just passed in so that the required info can be extracted into the returned values. See this for an example of how these might be made: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html\n",
    "\n",
    "The results returned are used and sent to the ECDF-based statistical distance measure methods, which use them to calculate the statistical distance of the specific class/ label.\n",
    "\n",
    "**DataFrame.loc[]** can be used to get the indexes/ rows which match the query inside the square brackets. See: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_X_train_and_test_data_for_given_label(labels, label_index, pred_y, X_train, X_test, y_train, y_test):\n",
    "    X_train_loc_for_label = X_train.loc[y_train == labels[label_index]]\n",
    "    X_test_loc_for_label = X_test.loc[pred_y == labels[label_index]]\n",
    "    \n",
    "    return X_train_loc_for_label, X_test_loc_for_label"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**get_concatenated_results_holding_all_classes_results()** method is used to get a Pandas Dataframe object, that has a new column added (called 'dataset') which can differentate rows/ data points based upon the class. **It allows for dynamic returning of a results table, for the number of classes in the current dataset**.\n",
    "\n",
    "The **result_dataframes** parameter holds a list of lists, where each list is the results for a specific class e.g. result_dataframes[0] would be the results table for class 0, which is a Pandas Dataframe. So essentially, this holds a list of Pandas Dataframes.\n",
    "\n",
    "A Python 3.6 concept called 'f-strings' is used to dynamically create the 'dataset' column's datapoint names, based upon the current class, using the for loop. See: https://www.journaldev.com/23642/python-concatenate-string-and-int\n",
    "\n",
    "**dataframe.append()** just appends something to the dataframes Python list.\n",
    "\n",
    "**result_dataframes[i].assign(dataset = class_name)** takes the Pandas Dataframe at the index i, and uses the .assign() method. See the .assign() method docs here: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.assign.html. This essentially returns a new object with all the original columns, but in addition to new ones. The new column will have the name defined in the first index, i.e. **'dataset'**, and a row in this column is defined by the **class_name**.\n",
    "\n",
    "**pd.concat()** takes a list of Pandas Dataframes or Series objects, and concatinates/ joins them together. See here: https://stackoverflow.com/a/51733133 for the reasoning behind why this is being done."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Using f-strings: https://www.journaldev.com/23642/python-concatenate-string-and-int\n",
    "def get_concatenated_results_holding_all_classes_results(number_of_classes, result_dataframes):\n",
    "    # Empty list to dynamically hold the dataframes which have been assigned a new dataset column\n",
    "    dataframes = []\n",
    "    \n",
    "    # For each class/ label\n",
    "    for i in range(number_of_classes):\n",
    "        class_name = f'class{i}'\n",
    "        dataframes.append(result_dataframes[i].assign(dataset = class_name))\n",
    "    \n",
    "    concatenated = pd.concat(dataframes)\n",
    "    \n",
    "    return concatenated"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Useful environment variables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 'Reduced dimensions' variable for altering the number of PCA principal components. Can be altered for needs.\n",
    "# Only 7 principal components needed when using non-normalised PCA dataset.\n",
    "dimensions_num_for_PCA = 7\n",
    "\n",
    "# Max number of permutations to run. Can be altered for needs.\n",
    "number_of_permutations = 100\n",
    "\n",
    "# 10 folds is usually the heuristic to follow for larger datasets of around this size.\n",
    "num_of_splits_for_skf = 10\n",
    "\n",
    "# Seed value to pass into models so that repeated runs result in the same output\n",
    "seed_val = 1\n",
    "\n",
    "# Number of statistical distance measures to run (for the results, columns section)\n",
    "num_of_statistical_dist_measures = 6"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Code starting point"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Importing the dataset into Pandas.DataFrame and showing the top 5 entries via 'df.head()'\n",
    "\n",
    "- **pd.read_csv()** reads in the csv dataset, which is in the **.gitignore file** as this shouldn't be included in the repo. Thus, to run, please put the same dataset into the same folder as this jupyter notebook file (see docs: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html)\n",
    "\n",
    "\n",
    "- The csv data is converted into a **Pandas Dataframe** object (via the pd.read_csv method). Pandas is really useful for data manipulation, and acts as a standardised way to work with data- allowing easier use of in-built functions without worrying about datatype coversion and compatability (see docs: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html).\n",
    "\n",
    "\n",
    "- The Pandas Dataframe consists of multiple **Pandas Series** objects, which are \"One-dimensional ndarray with axis labels (including time series)\". Thus, each Pandas Dataframe column/ feature/ attribute can be pulled out, and would then be a Pandas Series object (see docs: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.html)\n",
    "\n",
    "\n",
    "- Finally, to note, **numpy** can also be used to manipulate the data where needed; if the functionality you're looking for is not in the Pandas library (e.g. specialised array-based manip functions). Numpy works nicely with Pandas (see docs: https://numpy.org/)\n",
    "\n",
    "\n",
    "- **DataFrame.copy()** does a **deep copy** of the Dataframe, whereas **df_copy = df** would only do a **shallow copy**.\n",
    "\n",
    "\n",
    "- **df.head()** just shows the top (5 by default) entries in the imported dataset, which is now of type Pandas.Dataframe (see docs: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.head.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Datatype of Dataframe i.e. Pandas Dataframe:  <class 'pandas.core.frame.DataFrame'>\n",
      "Datatype of Column i.e. Pandas Series:  <class 'pandas.core.series.Series'>\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Destination Port</th>\n",
       "      <th>Flow Duration</th>\n",
       "      <th>Total Fwd Packets</th>\n",
       "      <th>Total Backward Packets</th>\n",
       "      <th>Total Length of Fwd Packets</th>\n",
       "      <th>Total Length of Bwd Packets</th>\n",
       "      <th>Fwd Packet Length Max</th>\n",
       "      <th>Fwd Packet Length Min</th>\n",
       "      <th>Fwd Packet Length Mean</th>\n",
       "      <th>Fwd Packet Length Std</th>\n",
       "      <th>...</th>\n",
       "      <th>min_seg_size_forward</th>\n",
       "      <th>Active Mean</th>\n",
       "      <th>Active Std</th>\n",
       "      <th>Active Max</th>\n",
       "      <th>Active Min</th>\n",
       "      <th>Idle Mean</th>\n",
       "      <th>Idle Std</th>\n",
       "      <th>Idle Max</th>\n",
       "      <th>Idle Min</th>\n",
       "      <th>Label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>22</td>\n",
       "      <td>1266342</td>\n",
       "      <td>41</td>\n",
       "      <td>44</td>\n",
       "      <td>2664</td>\n",
       "      <td>6954</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>64.975610</td>\n",
       "      <td>109.864573</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>22</td>\n",
       "      <td>1319353</td>\n",
       "      <td>41</td>\n",
       "      <td>44</td>\n",
       "      <td>2664</td>\n",
       "      <td>6954</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>64.975610</td>\n",
       "      <td>109.864573</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>22</td>\n",
       "      <td>160</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>22</td>\n",
       "      <td>1303488</td>\n",
       "      <td>41</td>\n",
       "      <td>42</td>\n",
       "      <td>2728</td>\n",
       "      <td>6634</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>66.536585</td>\n",
       "      <td>110.129945</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>35396</td>\n",
       "      <td>77</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 79 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    Destination Port   Flow Duration   Total Fwd Packets  \\\n",
       "0                 22         1266342                  41   \n",
       "1                 22         1319353                  41   \n",
       "2                 22             160                   1   \n",
       "3                 22         1303488                  41   \n",
       "4              35396              77                   1   \n",
       "\n",
       "    Total Backward Packets  Total Length of Fwd Packets  \\\n",
       "0                       44                         2664   \n",
       "1                       44                         2664   \n",
       "2                        1                            0   \n",
       "3                       42                         2728   \n",
       "4                        2                            0   \n",
       "\n",
       "    Total Length of Bwd Packets   Fwd Packet Length Max  \\\n",
       "0                          6954                     456   \n",
       "1                          6954                     456   \n",
       "2                             0                       0   \n",
       "3                          6634                     456   \n",
       "4                             0                       0   \n",
       "\n",
       "    Fwd Packet Length Min   Fwd Packet Length Mean   Fwd Packet Length Std  \\\n",
       "0                       0                64.975610              109.864573   \n",
       "1                       0                64.975610              109.864573   \n",
       "2                       0                 0.000000                0.000000   \n",
       "3                       0                66.536585              110.129945   \n",
       "4                       0                 0.000000                0.000000   \n",
       "\n",
       "   ...   min_seg_size_forward  Active Mean   Active Std   Active Max  \\\n",
       "0  ...                     32          0.0          0.0            0   \n",
       "1  ...                     32          0.0          0.0            0   \n",
       "2  ...                     32          0.0          0.0            0   \n",
       "3  ...                     32          0.0          0.0            0   \n",
       "4  ...                     32          0.0          0.0            0   \n",
       "\n",
       "    Active Min  Idle Mean   Idle Std   Idle Max   Idle Min   Label  \n",
       "0            0        0.0        0.0          0          0  BENIGN  \n",
       "1            0        0.0        0.0          0          0  BENIGN  \n",
       "2            0        0.0        0.0          0          0  BENIGN  \n",
       "3            0        0.0        0.0          0          0  BENIGN  \n",
       "4            0        0.0        0.0          0          0  BENIGN  \n",
       "\n",
       "[5 rows x 79 columns]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# The .csv dataset file should be in the same project directory as this Jupyter Notebook file\n",
    "Friday_Morning_Data = pd.read_csv('Friday-WorkingHours-Afternoon-PortScan.pcap_ISCX.csv')\n",
    "df = Friday_Morning_Data.copy()\n",
    "print(\"Datatype of Dataframe i.e. Pandas Dataframe: \", type(df))\n",
    "print(\"Datatype of Column i.e. Pandas Series: \", type(df.iloc[:, 1]))\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Data Preparation stage\n",
    "\n",
    "See CRISP-DM for more information. Following industry-standard Data Science/ ML practises.\n",
    "\n",
    "See: https://www.datascience-pm.com/crisp-dm-2/"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Fixing column name issues\n",
    "\n",
    "Because of Excel being used to create the csv, the column headings/ names contain whitespace padding, incorrect capitalisation, etc... which makes it difficult to correctly select by column names. This piece of code below just removes these issues.\n",
    "\n",
    "- **df_columns** can be used to access all the column heading names (see docs: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.columns.html)\n",
    "\n",
    "\n",
    "- The code below acts on each of the header names (for ease of use): \n",
    "    - **str.strip()** just strips/ removes any leading and trailing spaces\n",
    "    - **str.lower()** just converts all characters to lower case\n",
    "    - **str.replace('x', 'y')** just replaces all instances of x with y, i.e. changing spaces to '_'\n",
    "    - **str.replace('x', '')** can be used to remove the specified x characters (replacing with nothing/ empty char)\n",
    "\n",
    "Code Reference: https://medium.com/@chaimgluck1/working-with-pandas-fixing-messy-column-names-42a54a6659cd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-12-6efba12d8d07>:1: FutureWarning: The default value of regex will change from True to False in a future version. In addition, single character regular expressions will*not* be treated as literal strings when regex=True.\n",
      "  df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_').str.replace('(', '').str.replace(')', '')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>destination_port</th>\n",
       "      <th>flow_duration</th>\n",
       "      <th>total_fwd_packets</th>\n",
       "      <th>total_backward_packets</th>\n",
       "      <th>total_length_of_fwd_packets</th>\n",
       "      <th>total_length_of_bwd_packets</th>\n",
       "      <th>fwd_packet_length_max</th>\n",
       "      <th>fwd_packet_length_min</th>\n",
       "      <th>fwd_packet_length_mean</th>\n",
       "      <th>fwd_packet_length_std</th>\n",
       "      <th>...</th>\n",
       "      <th>min_seg_size_forward</th>\n",
       "      <th>active_mean</th>\n",
       "      <th>active_std</th>\n",
       "      <th>active_max</th>\n",
       "      <th>active_min</th>\n",
       "      <th>idle_mean</th>\n",
       "      <th>idle_std</th>\n",
       "      <th>idle_max</th>\n",
       "      <th>idle_min</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>22</td>\n",
       "      <td>1266342</td>\n",
       "      <td>41</td>\n",
       "      <td>44</td>\n",
       "      <td>2664</td>\n",
       "      <td>6954</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>64.975610</td>\n",
       "      <td>109.864573</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>22</td>\n",
       "      <td>1319353</td>\n",
       "      <td>41</td>\n",
       "      <td>44</td>\n",
       "      <td>2664</td>\n",
       "      <td>6954</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>64.975610</td>\n",
       "      <td>109.864573</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>22</td>\n",
       "      <td>160</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>22</td>\n",
       "      <td>1303488</td>\n",
       "      <td>41</td>\n",
       "      <td>42</td>\n",
       "      <td>2728</td>\n",
       "      <td>6634</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>66.536585</td>\n",
       "      <td>110.129945</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>35396</td>\n",
       "      <td>77</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 79 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   destination_port  flow_duration  total_fwd_packets  total_backward_packets  \\\n",
       "0                22        1266342                 41                      44   \n",
       "1                22        1319353                 41                      44   \n",
       "2                22            160                  1                       1   \n",
       "3                22        1303488                 41                      42   \n",
       "4             35396             77                  1                       2   \n",
       "\n",
       "   total_length_of_fwd_packets  total_length_of_bwd_packets  \\\n",
       "0                         2664                         6954   \n",
       "1                         2664                         6954   \n",
       "2                            0                            0   \n",
       "3                         2728                         6634   \n",
       "4                            0                            0   \n",
       "\n",
       "   fwd_packet_length_max  fwd_packet_length_min  fwd_packet_length_mean  \\\n",
       "0                    456                      0               64.975610   \n",
       "1                    456                      0               64.975610   \n",
       "2                      0                      0                0.000000   \n",
       "3                    456                      0               66.536585   \n",
       "4                      0                      0                0.000000   \n",
       "\n",
       "   fwd_packet_length_std  ...  min_seg_size_forward  active_mean  active_std  \\\n",
       "0             109.864573  ...                    32          0.0         0.0   \n",
       "1             109.864573  ...                    32          0.0         0.0   \n",
       "2               0.000000  ...                    32          0.0         0.0   \n",
       "3             110.129945  ...                    32          0.0         0.0   \n",
       "4               0.000000  ...                    32          0.0         0.0   \n",
       "\n",
       "   active_max  active_min  idle_mean  idle_std  idle_max  idle_min   label  \n",
       "0           0           0        0.0       0.0         0         0  BENIGN  \n",
       "1           0           0        0.0       0.0         0         0  BENIGN  \n",
       "2           0           0        0.0       0.0         0         0  BENIGN  \n",
       "3           0           0        0.0       0.0         0         0  BENIGN  \n",
       "4           0           0        0.0       0.0         0         0  BENIGN  \n",
       "\n",
       "[5 rows x 79 columns]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_').str.replace('(', '').str.replace(')', '')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Looking at the original data types\n",
    "Self-explanatory. Just shows the data types of each feature/ column."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "destination_port                 int64\n",
       "flow_duration                    int64\n",
       "total_fwd_packets                int64\n",
       "total_backward_packets           int64\n",
       "total_length_of_fwd_packets      int64\n",
       "                                ...   \n",
       "idle_mean                      float64\n",
       "idle_std                       float64\n",
       "idle_max                         int64\n",
       "idle_min                         int64\n",
       "label                           object\n",
       "Length: 79, dtype: object"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dtypes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Fixing issues with ScikitLearn's PCA transform on this dataset\n",
    "\n",
    "Without cleaning the dataset, the PCA transform will throw this error: \n",
    "- \"sklearn error ValueError: Input contains NaN, infinity or a value too large for dtype('float64')\". \n",
    "\n",
    "It isn't obvious which attribute and/ or data points are causing this, as the input dataset is supposed to be fully clean with no Nan or erroneous values. Also, there are too many attributes to manually search through to check this too. Thus, a quick solution via stackoverflow was found to work (see the 'clean_dataset(df)' method at the top of the notebook)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Some rows have been removed by the cleaning, indicating that some rows did have issues/ errors within them."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>destination_port</th>\n",
       "      <th>flow_duration</th>\n",
       "      <th>total_fwd_packets</th>\n",
       "      <th>total_backward_packets</th>\n",
       "      <th>total_length_of_fwd_packets</th>\n",
       "      <th>total_length_of_bwd_packets</th>\n",
       "      <th>fwd_packet_length_max</th>\n",
       "      <th>fwd_packet_length_min</th>\n",
       "      <th>fwd_packet_length_mean</th>\n",
       "      <th>fwd_packet_length_std</th>\n",
       "      <th>...</th>\n",
       "      <th>min_seg_size_forward</th>\n",
       "      <th>active_mean</th>\n",
       "      <th>active_std</th>\n",
       "      <th>active_max</th>\n",
       "      <th>active_min</th>\n",
       "      <th>idle_mean</th>\n",
       "      <th>idle_std</th>\n",
       "      <th>idle_max</th>\n",
       "      <th>idle_min</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>22</td>\n",
       "      <td>1266342</td>\n",
       "      <td>41</td>\n",
       "      <td>44</td>\n",
       "      <td>2664</td>\n",
       "      <td>6954</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>64.975610</td>\n",
       "      <td>109.864573</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>22</td>\n",
       "      <td>1319353</td>\n",
       "      <td>41</td>\n",
       "      <td>44</td>\n",
       "      <td>2664</td>\n",
       "      <td>6954</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>64.975610</td>\n",
       "      <td>109.864573</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>22</td>\n",
       "      <td>160</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>22</td>\n",
       "      <td>1303488</td>\n",
       "      <td>41</td>\n",
       "      <td>42</td>\n",
       "      <td>2728</td>\n",
       "      <td>6634</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>66.536585</td>\n",
       "      <td>110.129945</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>35396</td>\n",
       "      <td>77</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286462</th>\n",
       "      <td>443</td>\n",
       "      <td>196135</td>\n",
       "      <td>49</td>\n",
       "      <td>57</td>\n",
       "      <td>1331</td>\n",
       "      <td>105841</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>27.163265</td>\n",
       "      <td>108.067176</td>\n",
       "      <td>...</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286463</th>\n",
       "      <td>443</td>\n",
       "      <td>378424</td>\n",
       "      <td>49</td>\n",
       "      <td>59</td>\n",
       "      <td>1325</td>\n",
       "      <td>104393</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>27.040816</td>\n",
       "      <td>108.095051</td>\n",
       "      <td>...</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286464</th>\n",
       "      <td>443</td>\n",
       "      <td>161800</td>\n",
       "      <td>70</td>\n",
       "      <td>103</td>\n",
       "      <td>1427</td>\n",
       "      <td>215903</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>20.385714</td>\n",
       "      <td>90.746389</td>\n",
       "      <td>...</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286465</th>\n",
       "      <td>443</td>\n",
       "      <td>142864</td>\n",
       "      <td>50</td>\n",
       "      <td>62</td>\n",
       "      <td>1331</td>\n",
       "      <td>110185</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>26.620000</td>\n",
       "      <td>107.027727</td>\n",
       "      <td>...</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286466</th>\n",
       "      <td>443</td>\n",
       "      <td>186928</td>\n",
       "      <td>46</td>\n",
       "      <td>57</td>\n",
       "      <td>1319</td>\n",
       "      <td>100049</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>28.673913</td>\n",
       "      <td>111.438085</td>\n",
       "      <td>...</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>286096 rows × 79 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        destination_port  flow_duration  total_fwd_packets  \\\n",
       "0                     22        1266342                 41   \n",
       "1                     22        1319353                 41   \n",
       "2                     22            160                  1   \n",
       "3                     22        1303488                 41   \n",
       "4                  35396             77                  1   \n",
       "...                  ...            ...                ...   \n",
       "286462               443         196135                 49   \n",
       "286463               443         378424                 49   \n",
       "286464               443         161800                 70   \n",
       "286465               443         142864                 50   \n",
       "286466               443         186928                 46   \n",
       "\n",
       "        total_backward_packets  total_length_of_fwd_packets  \\\n",
       "0                           44                         2664   \n",
       "1                           44                         2664   \n",
       "2                            1                            0   \n",
       "3                           42                         2728   \n",
       "4                            2                            0   \n",
       "...                        ...                          ...   \n",
       "286462                      57                         1331   \n",
       "286463                      59                         1325   \n",
       "286464                     103                         1427   \n",
       "286465                      62                         1331   \n",
       "286466                      57                         1319   \n",
       "\n",
       "        total_length_of_bwd_packets  fwd_packet_length_max  \\\n",
       "0                              6954                    456   \n",
       "1                              6954                    456   \n",
       "2                                 0                      0   \n",
       "3                              6634                    456   \n",
       "4                                 0                      0   \n",
       "...                             ...                    ...   \n",
       "286462                       105841                    570   \n",
       "286463                       104393                    570   \n",
       "286464                       215903                    570   \n",
       "286465                       110185                    570   \n",
       "286466                       100049                    570   \n",
       "\n",
       "        fwd_packet_length_min  fwd_packet_length_mean  fwd_packet_length_std  \\\n",
       "0                           0               64.975610             109.864573   \n",
       "1                           0               64.975610             109.864573   \n",
       "2                           0                0.000000               0.000000   \n",
       "3                           0               66.536585             110.129945   \n",
       "4                           0                0.000000               0.000000   \n",
       "...                       ...                     ...                    ...   \n",
       "286462                      0               27.163265             108.067176   \n",
       "286463                      0               27.040816             108.095051   \n",
       "286464                      0               20.385714              90.746389   \n",
       "286465                      0               26.620000             107.027727   \n",
       "286466                      0               28.673913             111.438085   \n",
       "\n",
       "        ...  min_seg_size_forward  active_mean  active_std  active_max  \\\n",
       "0       ...                    32          0.0         0.0           0   \n",
       "1       ...                    32          0.0         0.0           0   \n",
       "2       ...                    32          0.0         0.0           0   \n",
       "3       ...                    32          0.0         0.0           0   \n",
       "4       ...                    32          0.0         0.0           0   \n",
       "...     ...                   ...          ...         ...         ...   \n",
       "286462  ...                    20          0.0         0.0           0   \n",
       "286463  ...                    20          0.0         0.0           0   \n",
       "286464  ...                    20          0.0         0.0           0   \n",
       "286465  ...                    20          0.0         0.0           0   \n",
       "286466  ...                    20          0.0         0.0           0   \n",
       "\n",
       "        active_min  idle_mean  idle_std  idle_max  idle_min   label  \n",
       "0                0        0.0       0.0         0         0  BENIGN  \n",
       "1                0        0.0       0.0         0         0  BENIGN  \n",
       "2                0        0.0       0.0         0         0  BENIGN  \n",
       "3                0        0.0       0.0         0         0  BENIGN  \n",
       "4                0        0.0       0.0         0         0  BENIGN  \n",
       "...            ...        ...       ...       ...       ...     ...  \n",
       "286462           0        0.0       0.0         0         0  BENIGN  \n",
       "286463           0        0.0       0.0         0         0  BENIGN  \n",
       "286464           0        0.0       0.0         0         0  BENIGN  \n",
       "286465           0        0.0       0.0         0         0  BENIGN  \n",
       "286466           0        0.0       0.0         0         0  BENIGN  \n",
       "\n",
       "[286096 rows x 79 columns]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_cleaned = df.copy()\n",
    "df_cleaned = clean_dataset(df_cleaned) # see methods at top of notebook\n",
    "df_cleaned"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Resetting indexes since rows have been dropped. See the difference between above dataframe indexes and below.\n",
    "\n",
    "- **.reset_index()** method resets the Pandas Dataframe indexes, for the rows. Useful to do after removing rows, as this messes up the indexes. It creates a new 'index' column that needs to be dropped, as it's useless (see docs: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reset_index.html)\n",
    "\n",
    "\n",
    "- **.drop([column_name], axis=x, inplace=y)** drops a specified column from the dataframe and returns a new copy. When **inplace=True**, it transforms the Dataframe itself (instead of needing to copy). The **axis** specifies the dimension of what to drop i.e. if **axis=0, it drops a row**. If **axis=1, it drops a column**."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>destination_port</th>\n",
       "      <th>flow_duration</th>\n",
       "      <th>total_fwd_packets</th>\n",
       "      <th>total_backward_packets</th>\n",
       "      <th>total_length_of_fwd_packets</th>\n",
       "      <th>total_length_of_bwd_packets</th>\n",
       "      <th>fwd_packet_length_max</th>\n",
       "      <th>fwd_packet_length_min</th>\n",
       "      <th>fwd_packet_length_mean</th>\n",
       "      <th>fwd_packet_length_std</th>\n",
       "      <th>...</th>\n",
       "      <th>min_seg_size_forward</th>\n",
       "      <th>active_mean</th>\n",
       "      <th>active_std</th>\n",
       "      <th>active_max</th>\n",
       "      <th>active_min</th>\n",
       "      <th>idle_mean</th>\n",
       "      <th>idle_std</th>\n",
       "      <th>idle_max</th>\n",
       "      <th>idle_min</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>22</td>\n",
       "      <td>1266342</td>\n",
       "      <td>41</td>\n",
       "      <td>44</td>\n",
       "      <td>2664</td>\n",
       "      <td>6954</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>64.975610</td>\n",
       "      <td>109.864573</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>22</td>\n",
       "      <td>1319353</td>\n",
       "      <td>41</td>\n",
       "      <td>44</td>\n",
       "      <td>2664</td>\n",
       "      <td>6954</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>64.975610</td>\n",
       "      <td>109.864573</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>22</td>\n",
       "      <td>160</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>22</td>\n",
       "      <td>1303488</td>\n",
       "      <td>41</td>\n",
       "      <td>42</td>\n",
       "      <td>2728</td>\n",
       "      <td>6634</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>66.536585</td>\n",
       "      <td>110.129945</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>35396</td>\n",
       "      <td>77</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286091</th>\n",
       "      <td>443</td>\n",
       "      <td>196135</td>\n",
       "      <td>49</td>\n",
       "      <td>57</td>\n",
       "      <td>1331</td>\n",
       "      <td>105841</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>27.163265</td>\n",
       "      <td>108.067176</td>\n",
       "      <td>...</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286092</th>\n",
       "      <td>443</td>\n",
       "      <td>378424</td>\n",
       "      <td>49</td>\n",
       "      <td>59</td>\n",
       "      <td>1325</td>\n",
       "      <td>104393</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>27.040816</td>\n",
       "      <td>108.095051</td>\n",
       "      <td>...</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286093</th>\n",
       "      <td>443</td>\n",
       "      <td>161800</td>\n",
       "      <td>70</td>\n",
       "      <td>103</td>\n",
       "      <td>1427</td>\n",
       "      <td>215903</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>20.385714</td>\n",
       "      <td>90.746389</td>\n",
       "      <td>...</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286094</th>\n",
       "      <td>443</td>\n",
       "      <td>142864</td>\n",
       "      <td>50</td>\n",
       "      <td>62</td>\n",
       "      <td>1331</td>\n",
       "      <td>110185</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>26.620000</td>\n",
       "      <td>107.027727</td>\n",
       "      <td>...</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286095</th>\n",
       "      <td>443</td>\n",
       "      <td>186928</td>\n",
       "      <td>46</td>\n",
       "      <td>57</td>\n",
       "      <td>1319</td>\n",
       "      <td>100049</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>28.673913</td>\n",
       "      <td>111.438085</td>\n",
       "      <td>...</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>286096 rows × 79 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        destination_port  flow_duration  total_fwd_packets  \\\n",
       "0                     22        1266342                 41   \n",
       "1                     22        1319353                 41   \n",
       "2                     22            160                  1   \n",
       "3                     22        1303488                 41   \n",
       "4                  35396             77                  1   \n",
       "...                  ...            ...                ...   \n",
       "286091               443         196135                 49   \n",
       "286092               443         378424                 49   \n",
       "286093               443         161800                 70   \n",
       "286094               443         142864                 50   \n",
       "286095               443         186928                 46   \n",
       "\n",
       "        total_backward_packets  total_length_of_fwd_packets  \\\n",
       "0                           44                         2664   \n",
       "1                           44                         2664   \n",
       "2                            1                            0   \n",
       "3                           42                         2728   \n",
       "4                            2                            0   \n",
       "...                        ...                          ...   \n",
       "286091                      57                         1331   \n",
       "286092                      59                         1325   \n",
       "286093                     103                         1427   \n",
       "286094                      62                         1331   \n",
       "286095                      57                         1319   \n",
       "\n",
       "        total_length_of_bwd_packets  fwd_packet_length_max  \\\n",
       "0                              6954                    456   \n",
       "1                              6954                    456   \n",
       "2                                 0                      0   \n",
       "3                              6634                    456   \n",
       "4                                 0                      0   \n",
       "...                             ...                    ...   \n",
       "286091                       105841                    570   \n",
       "286092                       104393                    570   \n",
       "286093                       215903                    570   \n",
       "286094                       110185                    570   \n",
       "286095                       100049                    570   \n",
       "\n",
       "        fwd_packet_length_min  fwd_packet_length_mean  fwd_packet_length_std  \\\n",
       "0                           0               64.975610             109.864573   \n",
       "1                           0               64.975610             109.864573   \n",
       "2                           0                0.000000               0.000000   \n",
       "3                           0               66.536585             110.129945   \n",
       "4                           0                0.000000               0.000000   \n",
       "...                       ...                     ...                    ...   \n",
       "286091                      0               27.163265             108.067176   \n",
       "286092                      0               27.040816             108.095051   \n",
       "286093                      0               20.385714              90.746389   \n",
       "286094                      0               26.620000             107.027727   \n",
       "286095                      0               28.673913             111.438085   \n",
       "\n",
       "        ...  min_seg_size_forward  active_mean  active_std  active_max  \\\n",
       "0       ...                    32          0.0         0.0           0   \n",
       "1       ...                    32          0.0         0.0           0   \n",
       "2       ...                    32          0.0         0.0           0   \n",
       "3       ...                    32          0.0         0.0           0   \n",
       "4       ...                    32          0.0         0.0           0   \n",
       "...     ...                   ...          ...         ...         ...   \n",
       "286091  ...                    20          0.0         0.0           0   \n",
       "286092  ...                    20          0.0         0.0           0   \n",
       "286093  ...                    20          0.0         0.0           0   \n",
       "286094  ...                    20          0.0         0.0           0   \n",
       "286095  ...                    20          0.0         0.0           0   \n",
       "\n",
       "        active_min  idle_mean  idle_std  idle_max  idle_min   label  \n",
       "0                0        0.0       0.0         0         0  BENIGN  \n",
       "1                0        0.0       0.0         0         0  BENIGN  \n",
       "2                0        0.0       0.0         0         0  BENIGN  \n",
       "3                0        0.0       0.0         0         0  BENIGN  \n",
       "4                0        0.0       0.0         0         0  BENIGN  \n",
       "...            ...        ...       ...       ...       ...     ...  \n",
       "286091           0        0.0       0.0         0         0  BENIGN  \n",
       "286092           0        0.0       0.0         0         0  BENIGN  \n",
       "286093           0        0.0       0.0         0         0  BENIGN  \n",
       "286094           0        0.0       0.0         0         0  BENIGN  \n",
       "286095           0        0.0       0.0         0         0  BENIGN  \n",
       "\n",
       "[286096 rows x 79 columns]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_cleaned = df_cleaned.reset_index()\n",
    "# Removing un-needed index column added by reset_index method\n",
    "df_cleaned.drop('index', axis=1, inplace=True)\n",
    "df_cleaned"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Considerations before PCA can be used correctly (before Data Preparation feature selection via PCA)\n",
    "Looking at this resource and many others (https://towardsdatascience.com/pca-is-not-feature-selection-3344fb764ae6), it can be seen that PCA can, quite easily, be used incorrectly without proper consideration and/ or understanding.\n",
    "\n",
    "From the resource:\n",
    "- \"A common mistake new data scientists make is to apply PCA to non-continuous variables. While it is technically possible to use PCA on discrete variables, or categorical variables that have been one hot encoded variables, you should not. Simply put, if your variables don’t belong on a coordinate plane, then do not apply PCA to them\"\n",
    "\n",
    "Thus, PCA should **only** be applied to the numeric features- which should be scaled down to unit scale.\n",
    "\n",
    "### What features should be included from PCA, and why?\n",
    "\n",
    "Looking at the list of feature names in the dataset (shown below), one can see that all other features should be of numeric type (with domain knowledge). They're all currently numeric type (either float or int). Consequently, PCA **can be** fully applied.\n",
    "\n",
    "- **df.columns.tolist()** converts the Dataframe column names into a Python list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['destination_port',\n",
       " 'flow_duration',\n",
       " 'total_fwd_packets',\n",
       " 'total_backward_packets',\n",
       " 'total_length_of_fwd_packets',\n",
       " 'total_length_of_bwd_packets',\n",
       " 'fwd_packet_length_max',\n",
       " 'fwd_packet_length_min',\n",
       " 'fwd_packet_length_mean',\n",
       " 'fwd_packet_length_std',\n",
       " 'bwd_packet_length_max',\n",
       " 'bwd_packet_length_min',\n",
       " 'bwd_packet_length_mean',\n",
       " 'bwd_packet_length_std',\n",
       " 'flow_bytes/s',\n",
       " 'flow_packets/s',\n",
       " 'flow_iat_mean',\n",
       " 'flow_iat_std',\n",
       " 'flow_iat_max',\n",
       " 'flow_iat_min',\n",
       " 'fwd_iat_total',\n",
       " 'fwd_iat_mean',\n",
       " 'fwd_iat_std',\n",
       " 'fwd_iat_max',\n",
       " 'fwd_iat_min',\n",
       " 'bwd_iat_total',\n",
       " 'bwd_iat_mean',\n",
       " 'bwd_iat_std',\n",
       " 'bwd_iat_max',\n",
       " 'bwd_iat_min',\n",
       " 'fwd_psh_flags',\n",
       " 'bwd_psh_flags',\n",
       " 'fwd_urg_flags',\n",
       " 'bwd_urg_flags',\n",
       " 'fwd_header_length',\n",
       " 'bwd_header_length',\n",
       " 'fwd_packets/s',\n",
       " 'bwd_packets/s',\n",
       " 'min_packet_length',\n",
       " 'max_packet_length',\n",
       " 'packet_length_mean',\n",
       " 'packet_length_std',\n",
       " 'packet_length_variance',\n",
       " 'fin_flag_count',\n",
       " 'syn_flag_count',\n",
       " 'rst_flag_count',\n",
       " 'psh_flag_count',\n",
       " 'ack_flag_count',\n",
       " 'urg_flag_count',\n",
       " 'cwe_flag_count',\n",
       " 'ece_flag_count',\n",
       " 'down/up_ratio',\n",
       " 'average_packet_size',\n",
       " 'avg_fwd_segment_size',\n",
       " 'avg_bwd_segment_size',\n",
       " 'fwd_header_length.1',\n",
       " 'fwd_avg_bytes/bulk',\n",
       " 'fwd_avg_packets/bulk',\n",
       " 'fwd_avg_bulk_rate',\n",
       " 'bwd_avg_bytes/bulk',\n",
       " 'bwd_avg_packets/bulk',\n",
       " 'bwd_avg_bulk_rate',\n",
       " 'subflow_fwd_packets',\n",
       " 'subflow_fwd_bytes',\n",
       " 'subflow_bwd_packets',\n",
       " 'subflow_bwd_bytes',\n",
       " 'init_win_bytes_forward',\n",
       " 'init_win_bytes_backward',\n",
       " 'act_data_pkt_fwd',\n",
       " 'min_seg_size_forward',\n",
       " 'active_mean',\n",
       " 'active_std',\n",
       " 'active_max',\n",
       " 'active_min',\n",
       " 'idle_mean',\n",
       " 'idle_std',\n",
       " 'idle_max',\n",
       " 'idle_min',\n",
       " 'label']"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns.tolist()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data Preparation: PCA Dimension reduction and scaling (Hughes' Phenomenon)\n",
    "\n",
    "PCA acts to reduce the dimensions/ search space of the dataset as much as possible, while trying to maintain the most information possible e.g. It can easily reduce the dimensionality by more than half, while still maintaining 99% of the original data's information- it does this by extracting out the most important information/ trends/ spread (variance) of each dimension/ attribute- into n 'principal components'.\n",
    "\n",
    "More formally: PCA is used to decompose a multivariate dataset in a set of successive orthogonal components that explain a maximum amount of the variance.\n",
    "\n",
    "##### *Key note:* \n",
    "\"**PCA centers but does not scale the input data** for each feature before applying the SVD. The optional parameter whiten=True makes it possible to project the data onto the singular space while scaling each component to unit variance. This is often useful if the models down-stream make strong assumptions on the isotropy of the signal: this is for example the case for **Support Vector Machines with the RBF kernel** and the **K-Means clustering algorithm**.\" (https://scikit-learn.org/stable/modules/decomposition.html#pca)\n",
    "\n",
    "PCA still works without standardizing the features to unit scale **but tranforming to unit scale should still be done** to prevent large variance features from having an over-bearing affect on other lower variance features (via something like StandardScaler here https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html). \n",
    "\n",
    "This is **particularly important with this dataset**, as some features have massively wide variances and others do not (e.g. the 'idle_std' values can range from e+06, all the way to zero).\n",
    "\n",
    "- **Dataframe['x']** syntax allows the selection of one of the Dataframe columns (where 'x' is the column heading/ name).\n",
    "\n",
    "\n",
    "- **df_Series.unique()** returns an array, showing all the unique values inside the Pandas Series object."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['BENIGN', 'PortScan'], dtype=object)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Saving the label attribute before dropping it.\n",
    "df_labels = df_cleaned['label']\n",
    "# Shows all the possible labels/ classes a model can predict.\n",
    "# Need to alter these to numeric 0, 1, etc... for model comprehension (e.g. pd.get_dummies()).\n",
    "df_labels.unique()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The label column has to be removed as you don't want this involved in the PCA process. It can be concatted back with the PCA tranformed dataframe."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>destination_port</th>\n",
       "      <th>flow_duration</th>\n",
       "      <th>total_fwd_packets</th>\n",
       "      <th>total_backward_packets</th>\n",
       "      <th>total_length_of_fwd_packets</th>\n",
       "      <th>total_length_of_bwd_packets</th>\n",
       "      <th>fwd_packet_length_max</th>\n",
       "      <th>fwd_packet_length_min</th>\n",
       "      <th>fwd_packet_length_mean</th>\n",
       "      <th>fwd_packet_length_std</th>\n",
       "      <th>...</th>\n",
       "      <th>act_data_pkt_fwd</th>\n",
       "      <th>min_seg_size_forward</th>\n",
       "      <th>active_mean</th>\n",
       "      <th>active_std</th>\n",
       "      <th>active_max</th>\n",
       "      <th>active_min</th>\n",
       "      <th>idle_mean</th>\n",
       "      <th>idle_std</th>\n",
       "      <th>idle_max</th>\n",
       "      <th>idle_min</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>22</td>\n",
       "      <td>1266342</td>\n",
       "      <td>41</td>\n",
       "      <td>44</td>\n",
       "      <td>2664</td>\n",
       "      <td>6954</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>64.975610</td>\n",
       "      <td>109.864573</td>\n",
       "      <td>...</td>\n",
       "      <td>24</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>22</td>\n",
       "      <td>1319353</td>\n",
       "      <td>41</td>\n",
       "      <td>44</td>\n",
       "      <td>2664</td>\n",
       "      <td>6954</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>64.975610</td>\n",
       "      <td>109.864573</td>\n",
       "      <td>...</td>\n",
       "      <td>24</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>22</td>\n",
       "      <td>160</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>22</td>\n",
       "      <td>1303488</td>\n",
       "      <td>41</td>\n",
       "      <td>42</td>\n",
       "      <td>2728</td>\n",
       "      <td>6634</td>\n",
       "      <td>456</td>\n",
       "      <td>0</td>\n",
       "      <td>66.536585</td>\n",
       "      <td>110.129945</td>\n",
       "      <td>...</td>\n",
       "      <td>24</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>35396</td>\n",
       "      <td>77</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286091</th>\n",
       "      <td>443</td>\n",
       "      <td>196135</td>\n",
       "      <td>49</td>\n",
       "      <td>57</td>\n",
       "      <td>1331</td>\n",
       "      <td>105841</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>27.163265</td>\n",
       "      <td>108.067176</td>\n",
       "      <td>...</td>\n",
       "      <td>31</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286092</th>\n",
       "      <td>443</td>\n",
       "      <td>378424</td>\n",
       "      <td>49</td>\n",
       "      <td>59</td>\n",
       "      <td>1325</td>\n",
       "      <td>104393</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>27.040816</td>\n",
       "      <td>108.095051</td>\n",
       "      <td>...</td>\n",
       "      <td>30</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286093</th>\n",
       "      <td>443</td>\n",
       "      <td>161800</td>\n",
       "      <td>70</td>\n",
       "      <td>103</td>\n",
       "      <td>1427</td>\n",
       "      <td>215903</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>20.385714</td>\n",
       "      <td>90.746389</td>\n",
       "      <td>...</td>\n",
       "      <td>47</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286094</th>\n",
       "      <td>443</td>\n",
       "      <td>142864</td>\n",
       "      <td>50</td>\n",
       "      <td>62</td>\n",
       "      <td>1331</td>\n",
       "      <td>110185</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>26.620000</td>\n",
       "      <td>107.027727</td>\n",
       "      <td>...</td>\n",
       "      <td>31</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286095</th>\n",
       "      <td>443</td>\n",
       "      <td>186928</td>\n",
       "      <td>46</td>\n",
       "      <td>57</td>\n",
       "      <td>1319</td>\n",
       "      <td>100049</td>\n",
       "      <td>570</td>\n",
       "      <td>0</td>\n",
       "      <td>28.673913</td>\n",
       "      <td>111.438085</td>\n",
       "      <td>...</td>\n",
       "      <td>29</td>\n",
       "      <td>20</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>286096 rows × 78 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        destination_port  flow_duration  total_fwd_packets  \\\n",
       "0                     22        1266342                 41   \n",
       "1                     22        1319353                 41   \n",
       "2                     22            160                  1   \n",
       "3                     22        1303488                 41   \n",
       "4                  35396             77                  1   \n",
       "...                  ...            ...                ...   \n",
       "286091               443         196135                 49   \n",
       "286092               443         378424                 49   \n",
       "286093               443         161800                 70   \n",
       "286094               443         142864                 50   \n",
       "286095               443         186928                 46   \n",
       "\n",
       "        total_backward_packets  total_length_of_fwd_packets  \\\n",
       "0                           44                         2664   \n",
       "1                           44                         2664   \n",
       "2                            1                            0   \n",
       "3                           42                         2728   \n",
       "4                            2                            0   \n",
       "...                        ...                          ...   \n",
       "286091                      57                         1331   \n",
       "286092                      59                         1325   \n",
       "286093                     103                         1427   \n",
       "286094                      62                         1331   \n",
       "286095                      57                         1319   \n",
       "\n",
       "        total_length_of_bwd_packets  fwd_packet_length_max  \\\n",
       "0                              6954                    456   \n",
       "1                              6954                    456   \n",
       "2                                 0                      0   \n",
       "3                              6634                    456   \n",
       "4                                 0                      0   \n",
       "...                             ...                    ...   \n",
       "286091                       105841                    570   \n",
       "286092                       104393                    570   \n",
       "286093                       215903                    570   \n",
       "286094                       110185                    570   \n",
       "286095                       100049                    570   \n",
       "\n",
       "        fwd_packet_length_min  fwd_packet_length_mean  fwd_packet_length_std  \\\n",
       "0                           0               64.975610             109.864573   \n",
       "1                           0               64.975610             109.864573   \n",
       "2                           0                0.000000               0.000000   \n",
       "3                           0               66.536585             110.129945   \n",
       "4                           0                0.000000               0.000000   \n",
       "...                       ...                     ...                    ...   \n",
       "286091                      0               27.163265             108.067176   \n",
       "286092                      0               27.040816             108.095051   \n",
       "286093                      0               20.385714              90.746389   \n",
       "286094                      0               26.620000             107.027727   \n",
       "286095                      0               28.673913             111.438085   \n",
       "\n",
       "        ...  act_data_pkt_fwd  min_seg_size_forward  active_mean  active_std  \\\n",
       "0       ...                24                    32          0.0         0.0   \n",
       "1       ...                24                    32          0.0         0.0   \n",
       "2       ...                 0                    32          0.0         0.0   \n",
       "3       ...                24                    32          0.0         0.0   \n",
       "4       ...                 0                    32          0.0         0.0   \n",
       "...     ...               ...                   ...          ...         ...   \n",
       "286091  ...                31                    20          0.0         0.0   \n",
       "286092  ...                30                    20          0.0         0.0   \n",
       "286093  ...                47                    20          0.0         0.0   \n",
       "286094  ...                31                    20          0.0         0.0   \n",
       "286095  ...                29                    20          0.0         0.0   \n",
       "\n",
       "        active_max  active_min  idle_mean  idle_std  idle_max  idle_min  \n",
       "0                0           0        0.0       0.0         0         0  \n",
       "1                0           0        0.0       0.0         0         0  \n",
       "2                0           0        0.0       0.0         0         0  \n",
       "3                0           0        0.0       0.0         0         0  \n",
       "4                0           0        0.0       0.0         0         0  \n",
       "...            ...         ...        ...       ...       ...       ...  \n",
       "286091           0           0        0.0       0.0         0         0  \n",
       "286092           0           0        0.0       0.0         0         0  \n",
       "286093           0           0        0.0       0.0         0         0  \n",
       "286094           0           0        0.0       0.0         0         0  \n",
       "286095           0           0        0.0       0.0         0         0  \n",
       "\n",
       "[286096 rows x 78 columns]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Axis=1 means columns. Axis=0 means rows. inplace=False means that the original 'df' isn't altered.\n",
    "df_no_labels = df_cleaned.drop('label', axis=1, inplace=False)\n",
    "# Getting feature names for the StandardScaler process\n",
    "df_features = df_no_labels.columns.tolist()\n",
    "# Printing out Dataframe with no label column, to show successful dropping\n",
    "df_no_labels"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Using StandardScaler to transform features into unit scale (optional for PCA)\n",
    "- **StandardScaler()** is an imported model from the sklearn.preprocessing library. It scales the specified Pandas Dataframe or Series object values to unit scale/ variance. This is usually required for certain functions to perform correctly, e.g. the PCA transform later (see docs: https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html)\n",
    "\n",
    "\n",
    "- StandardScaler().**fit_transform(df)** fits the StandardScaler model to the data, and transforms it into unit scale.\n",
    "\n",
    "\n",
    "- **pd.Dataframe(data=x, columns=y)** can convert the data 'x' into a Pandas Dataframe object, using the respective columns 'y'\n",
    "\n",
    "Code references: https://towardsdatascience.com/pca-using-python-scikit-learn-e653f8989e60"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>destination_port</th>\n",
       "      <th>flow_duration</th>\n",
       "      <th>total_fwd_packets</th>\n",
       "      <th>total_backward_packets</th>\n",
       "      <th>total_length_of_fwd_packets</th>\n",
       "      <th>total_length_of_bwd_packets</th>\n",
       "      <th>fwd_packet_length_max</th>\n",
       "      <th>fwd_packet_length_min</th>\n",
       "      <th>fwd_packet_length_mean</th>\n",
       "      <th>fwd_packet_length_std</th>\n",
       "      <th>...</th>\n",
       "      <th>act_data_pkt_fwd</th>\n",
       "      <th>min_seg_size_forward</th>\n",
       "      <th>active_mean</th>\n",
       "      <th>active_std</th>\n",
       "      <th>active_max</th>\n",
       "      <th>active_min</th>\n",
       "      <th>idle_mean</th>\n",
       "      <th>idle_std</th>\n",
       "      <th>idle_max</th>\n",
       "      <th>idle_min</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.520898</td>\n",
       "      <td>-0.187809</td>\n",
       "      <td>1.921576</td>\n",
       "      <td>1.429893</td>\n",
       "      <td>1.301913</td>\n",
       "      <td>0.083183</td>\n",
       "      <td>1.143000</td>\n",
       "      <td>-0.427193</td>\n",
       "      <td>0.520360</td>\n",
       "      <td>0.726763</td>\n",
       "      <td>...</td>\n",
       "      <td>1.493893</td>\n",
       "      <td>0.364318</td>\n",
       "      <td>-0.073218</td>\n",
       "      <td>-0.08755</td>\n",
       "      <td>-0.106105</td>\n",
       "      <td>-0.05145</td>\n",
       "      <td>-0.184749</td>\n",
       "      <td>-0.050323</td>\n",
       "      <td>-0.185562</td>\n",
       "      <td>-0.179561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.520898</td>\n",
       "      <td>-0.185393</td>\n",
       "      <td>1.921576</td>\n",
       "      <td>1.429893</td>\n",
       "      <td>1.301913</td>\n",
       "      <td>0.083183</td>\n",
       "      <td>1.143000</td>\n",
       "      <td>-0.427193</td>\n",
       "      <td>0.520360</td>\n",
       "      <td>0.726763</td>\n",
       "      <td>...</td>\n",
       "      <td>1.493893</td>\n",
       "      <td>0.364318</td>\n",
       "      <td>-0.073218</td>\n",
       "      <td>-0.08755</td>\n",
       "      <td>-0.106105</td>\n",
       "      <td>-0.05145</td>\n",
       "      <td>-0.184749</td>\n",
       "      <td>-0.050323</td>\n",
       "      <td>-0.185562</td>\n",
       "      <td>-0.179561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.520898</td>\n",
       "      <td>-0.245528</td>\n",
       "      <td>-0.126811</td>\n",
       "      <td>-0.089163</td>\n",
       "      <td>-0.125195</td>\n",
       "      <td>-0.053141</td>\n",
       "      <td>-0.247378</td>\n",
       "      <td>-0.427193</td>\n",
       "      <td>-0.308105</td>\n",
       "      <td>-0.209924</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.116102</td>\n",
       "      <td>0.364318</td>\n",
       "      <td>-0.073218</td>\n",
       "      <td>-0.08755</td>\n",
       "      <td>-0.106105</td>\n",
       "      <td>-0.05145</td>\n",
       "      <td>-0.184749</td>\n",
       "      <td>-0.050323</td>\n",
       "      <td>-0.185562</td>\n",
       "      <td>-0.179561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.520898</td>\n",
       "      <td>-0.186116</td>\n",
       "      <td>1.921576</td>\n",
       "      <td>1.359240</td>\n",
       "      <td>1.336198</td>\n",
       "      <td>0.076910</td>\n",
       "      <td>1.143000</td>\n",
       "      <td>-0.427193</td>\n",
       "      <td>0.540263</td>\n",
       "      <td>0.729026</td>\n",
       "      <td>...</td>\n",
       "      <td>1.493893</td>\n",
       "      <td>0.364318</td>\n",
       "      <td>-0.073218</td>\n",
       "      <td>-0.08755</td>\n",
       "      <td>-0.106105</td>\n",
       "      <td>-0.05145</td>\n",
       "      <td>-0.184749</td>\n",
       "      <td>-0.050323</td>\n",
       "      <td>-0.185562</td>\n",
       "      <td>-0.179561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.784164</td>\n",
       "      <td>-0.245532</td>\n",
       "      <td>-0.126811</td>\n",
       "      <td>-0.053837</td>\n",
       "      <td>-0.125195</td>\n",
       "      <td>-0.053141</td>\n",
       "      <td>-0.247378</td>\n",
       "      <td>-0.427193</td>\n",
       "      <td>-0.308105</td>\n",
       "      <td>-0.209924</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.116102</td>\n",
       "      <td>0.364318</td>\n",
       "      <td>-0.073218</td>\n",
       "      <td>-0.08755</td>\n",
       "      <td>-0.106105</td>\n",
       "      <td>-0.05145</td>\n",
       "      <td>-0.184749</td>\n",
       "      <td>-0.050323</td>\n",
       "      <td>-0.185562</td>\n",
       "      <td>-0.179561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286091</th>\n",
       "      <td>-0.493464</td>\n",
       "      <td>-0.236595</td>\n",
       "      <td>2.331253</td>\n",
       "      <td>1.889143</td>\n",
       "      <td>0.587823</td>\n",
       "      <td>2.021738</td>\n",
       "      <td>1.490594</td>\n",
       "      <td>-0.427193</td>\n",
       "      <td>0.038237</td>\n",
       "      <td>0.711439</td>\n",
       "      <td>...</td>\n",
       "      <td>1.963476</td>\n",
       "      <td>-1.133141</td>\n",
       "      <td>-0.073218</td>\n",
       "      <td>-0.08755</td>\n",
       "      <td>-0.106105</td>\n",
       "      <td>-0.05145</td>\n",
       "      <td>-0.184749</td>\n",
       "      <td>-0.050323</td>\n",
       "      <td>-0.185562</td>\n",
       "      <td>-0.179561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286092</th>\n",
       "      <td>-0.493464</td>\n",
       "      <td>-0.228285</td>\n",
       "      <td>2.331253</td>\n",
       "      <td>1.959797</td>\n",
       "      <td>0.584609</td>\n",
       "      <td>1.993352</td>\n",
       "      <td>1.490594</td>\n",
       "      <td>-0.427193</td>\n",
       "      <td>0.036676</td>\n",
       "      <td>0.711676</td>\n",
       "      <td>...</td>\n",
       "      <td>1.896392</td>\n",
       "      <td>-1.133141</td>\n",
       "      <td>-0.073218</td>\n",
       "      <td>-0.08755</td>\n",
       "      <td>-0.106105</td>\n",
       "      <td>-0.05145</td>\n",
       "      <td>-0.184749</td>\n",
       "      <td>-0.050323</td>\n",
       "      <td>-0.185562</td>\n",
       "      <td>-0.179561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286093</th>\n",
       "      <td>-0.493464</td>\n",
       "      <td>-0.238160</td>\n",
       "      <td>3.406657</td>\n",
       "      <td>3.514181</td>\n",
       "      <td>0.639251</td>\n",
       "      <td>4.179364</td>\n",
       "      <td>1.490594</td>\n",
       "      <td>-0.427193</td>\n",
       "      <td>-0.048179</td>\n",
       "      <td>0.563765</td>\n",
       "      <td>...</td>\n",
       "      <td>3.036806</td>\n",
       "      <td>-1.133141</td>\n",
       "      <td>-0.073218</td>\n",
       "      <td>-0.08755</td>\n",
       "      <td>-0.106105</td>\n",
       "      <td>-0.05145</td>\n",
       "      <td>-0.184749</td>\n",
       "      <td>-0.050323</td>\n",
       "      <td>-0.185562</td>\n",
       "      <td>-0.179561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286094</th>\n",
       "      <td>-0.493464</td>\n",
       "      <td>-0.239023</td>\n",
       "      <td>2.382463</td>\n",
       "      <td>2.065778</td>\n",
       "      <td>0.587823</td>\n",
       "      <td>2.106896</td>\n",
       "      <td>1.490594</td>\n",
       "      <td>-0.427193</td>\n",
       "      <td>0.031310</td>\n",
       "      <td>0.702577</td>\n",
       "      <td>...</td>\n",
       "      <td>1.963476</td>\n",
       "      <td>-1.133141</td>\n",
       "      <td>-0.073218</td>\n",
       "      <td>-0.08755</td>\n",
       "      <td>-0.106105</td>\n",
       "      <td>-0.05145</td>\n",
       "      <td>-0.184749</td>\n",
       "      <td>-0.050323</td>\n",
       "      <td>-0.185562</td>\n",
       "      <td>-0.179561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286095</th>\n",
       "      <td>-0.493464</td>\n",
       "      <td>-0.237015</td>\n",
       "      <td>2.177624</td>\n",
       "      <td>1.889143</td>\n",
       "      <td>0.581395</td>\n",
       "      <td>1.908193</td>\n",
       "      <td>1.490594</td>\n",
       "      <td>-0.427193</td>\n",
       "      <td>0.057499</td>\n",
       "      <td>0.740179</td>\n",
       "      <td>...</td>\n",
       "      <td>1.829309</td>\n",
       "      <td>-1.133141</td>\n",
       "      <td>-0.073218</td>\n",
       "      <td>-0.08755</td>\n",
       "      <td>-0.106105</td>\n",
       "      <td>-0.05145</td>\n",
       "      <td>-0.184749</td>\n",
       "      <td>-0.050323</td>\n",
       "      <td>-0.185562</td>\n",
       "      <td>-0.179561</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>286096 rows × 78 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        destination_port  flow_duration  total_fwd_packets  \\\n",
       "0              -0.520898      -0.187809           1.921576   \n",
       "1              -0.520898      -0.185393           1.921576   \n",
       "2              -0.520898      -0.245528          -0.126811   \n",
       "3              -0.520898      -0.186116           1.921576   \n",
       "4               1.784164      -0.245532          -0.126811   \n",
       "...                  ...            ...                ...   \n",
       "286091         -0.493464      -0.236595           2.331253   \n",
       "286092         -0.493464      -0.228285           2.331253   \n",
       "286093         -0.493464      -0.238160           3.406657   \n",
       "286094         -0.493464      -0.239023           2.382463   \n",
       "286095         -0.493464      -0.237015           2.177624   \n",
       "\n",
       "        total_backward_packets  total_length_of_fwd_packets  \\\n",
       "0                     1.429893                     1.301913   \n",
       "1                     1.429893                     1.301913   \n",
       "2                    -0.089163                    -0.125195   \n",
       "3                     1.359240                     1.336198   \n",
       "4                    -0.053837                    -0.125195   \n",
       "...                        ...                          ...   \n",
       "286091                1.889143                     0.587823   \n",
       "286092                1.959797                     0.584609   \n",
       "286093                3.514181                     0.639251   \n",
       "286094                2.065778                     0.587823   \n",
       "286095                1.889143                     0.581395   \n",
       "\n",
       "        total_length_of_bwd_packets  fwd_packet_length_max  \\\n",
       "0                          0.083183               1.143000   \n",
       "1                          0.083183               1.143000   \n",
       "2                         -0.053141              -0.247378   \n",
       "3                          0.076910               1.143000   \n",
       "4                         -0.053141              -0.247378   \n",
       "...                             ...                    ...   \n",
       "286091                     2.021738               1.490594   \n",
       "286092                     1.993352               1.490594   \n",
       "286093                     4.179364               1.490594   \n",
       "286094                     2.106896               1.490594   \n",
       "286095                     1.908193               1.490594   \n",
       "\n",
       "        fwd_packet_length_min  fwd_packet_length_mean  fwd_packet_length_std  \\\n",
       "0                   -0.427193                0.520360               0.726763   \n",
       "1                   -0.427193                0.520360               0.726763   \n",
       "2                   -0.427193               -0.308105              -0.209924   \n",
       "3                   -0.427193                0.540263               0.729026   \n",
       "4                   -0.427193               -0.308105              -0.209924   \n",
       "...                       ...                     ...                    ...   \n",
       "286091              -0.427193                0.038237               0.711439   \n",
       "286092              -0.427193                0.036676               0.711676   \n",
       "286093              -0.427193               -0.048179               0.563765   \n",
       "286094              -0.427193                0.031310               0.702577   \n",
       "286095              -0.427193                0.057499               0.740179   \n",
       "\n",
       "        ...  act_data_pkt_fwd  min_seg_size_forward  active_mean  active_std  \\\n",
       "0       ...          1.493893              0.364318    -0.073218    -0.08755   \n",
       "1       ...          1.493893              0.364318    -0.073218    -0.08755   \n",
       "2       ...         -0.116102              0.364318    -0.073218    -0.08755   \n",
       "3       ...          1.493893              0.364318    -0.073218    -0.08755   \n",
       "4       ...         -0.116102              0.364318    -0.073218    -0.08755   \n",
       "...     ...               ...                   ...          ...         ...   \n",
       "286091  ...          1.963476             -1.133141    -0.073218    -0.08755   \n",
       "286092  ...          1.896392             -1.133141    -0.073218    -0.08755   \n",
       "286093  ...          3.036806             -1.133141    -0.073218    -0.08755   \n",
       "286094  ...          1.963476             -1.133141    -0.073218    -0.08755   \n",
       "286095  ...          1.829309             -1.133141    -0.073218    -0.08755   \n",
       "\n",
       "        active_max  active_min  idle_mean  idle_std  idle_max  idle_min  \n",
       "0        -0.106105    -0.05145  -0.184749 -0.050323 -0.185562 -0.179561  \n",
       "1        -0.106105    -0.05145  -0.184749 -0.050323 -0.185562 -0.179561  \n",
       "2        -0.106105    -0.05145  -0.184749 -0.050323 -0.185562 -0.179561  \n",
       "3        -0.106105    -0.05145  -0.184749 -0.050323 -0.185562 -0.179561  \n",
       "4        -0.106105    -0.05145  -0.184749 -0.050323 -0.185562 -0.179561  \n",
       "...            ...         ...        ...       ...       ...       ...  \n",
       "286091   -0.106105    -0.05145  -0.184749 -0.050323 -0.185562 -0.179561  \n",
       "286092   -0.106105    -0.05145  -0.184749 -0.050323 -0.185562 -0.179561  \n",
       "286093   -0.106105    -0.05145  -0.184749 -0.050323 -0.185562 -0.179561  \n",
       "286094   -0.106105    -0.05145  -0.184749 -0.050323 -0.185562 -0.179561  \n",
       "286095   -0.106105    -0.05145  -0.184749 -0.050323 -0.185562 -0.179561  \n",
       "\n",
       "[286096 rows x 78 columns]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_scaled = StandardScaler().fit_transform(df_no_labels)\n",
    "# Converting back to dataframe\n",
    "df_scaled = pd.DataFrame(data = df_scaled, columns = df_features)\n",
    "df_scaled"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Plotting principle component variance\n",
    "\n",
    "A scree plot displays the variance explained by each principal component within the analysis, of the **Normalised** dataset.\n",
    "\n",
    "**The plot below shows that using the first 30 PCA components actually describes most/ all (99.9%) of the variation (information) within the Normalised dataset. This is a huge dimension reduction from the initial 78 features, down to just 30.**\n",
    "\n",
    "Thus, looking at the Environment Variables (at the top of the notebook), the 'dimensions_num_for_PCA' variable will be set to between **10 and 25** based upon this evidence, to maximise efficiency and also dataset accuracy (after PCA).\n",
    "\n",
    "(Code reference: https://medium.com/district-data-labs/principal-component-analysis-with-python-4962cd026465)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEGCAYAAABlxeIAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAArzUlEQVR4nO3deZhcZZn+8e/dnXQ6e8hKyEICCftuAAWFgKIssjmi4AbqEGckiqjjwOggMj9nHDdwwRFUxI1NRA0YQJaACgpJWEISCOkEspGkOyH70kl3P78/zmmoNL2cTrq6qrvuz3XVVXXes9RTVd311DnvpojAzMysrNABmJlZcXBCMDMzwAnBzMxSTghmZgY4IZiZWapHoQNor6FDh8a4ceMKHYaZWZcye/bsNRExrLVtulxCGDduHLNmzSp0GGZmXYqkJW1t40tGZmYGOCGYmVnKCcHMzAAnBDMzSzkhmJkZkMeEIOlmSdWS5rawXpK+L6lK0hxJx+QrFjMza1s+zxBuAU5vZf0ZwMT0NgX4vzzGYmZmbchbP4SI+Iukca1sci7wy0jG3/6HpEGSRkbEynzFZJYPDQ3BjvoGdtY3sLM+2FnfwI66Buoagrq0rK4hva9voL4hqGsI6iOor0/uI4L6BmiIoCGCCKhveONxUg5Beh9BQ0NjWbIc6fp4vSyJr7GMdDt2Wber3H1yl1vS7sHzPdz+HnnnwSM4csygvB2/kB3TRgHLcpaXp2VvSgiSppCcRTB27NhOCc66r/qGYN3WHazdvIO1m2tZs2UHm7fXsXVHHVtq65P7HXVsra1P7nfUs21HPVt31LN9Zz3bdtZTW9dA7c76NBH4S649pEJH0HUNH1DZbRNCZhFxE3ATwKRJk/zfZy2KCGo21bJi/TZeXb+dlRu2sWL9NlZt2M7KDdtZvXE71ZtqqW9o+c+ookcZ/Xr1oE9FOX0retC7opw+FeUM6tOTyp7l9O5ZTq+eZfTqUU6vHmX0LC+jokcZFel9j3LRs7yMnuWiR9kb943l5WWiR5koT29lyr0HaFyGMgkJysuESMoQlEuvrxNCZSBAUnqflud8+TYt0+vlu35DK2f75tZb91XIhLACGJOzPDotM2tVXX0Dy9dt45W1W1iydisvr9nCste2svS1rSxbt5XtOxt22b5vRTkjB/Vm7wGVTJgwlL0HVDJ8QC+G9O3FkH4VDOlbwYDePZMv/p7l9Ch34zsrTYVMCNOAqZJuB44HNrj+wHJFBCs3bOe5Zet5YdUmqqo3UVW9mZfXbNnlMk3finLGDunLfsP6cvIBwxgzuA9jBvdm5MDe7DOoNwMqe/hXrlkGeUsIkm4DJgNDJS0Hvgr0BIiIHwPTgTOBKmAr8PF8xWJdw+baOuYsW88zy9bzzNL1PLd8PTWbagEoE+w7pC8ThvfjnQePYL+hfRk/tC/7DunL0H4V/sI36wD5bGV0URvrA7gsX89vxS0iWLJ2K7OWrGP2knU8s3QdC1Zver0Ryn5D+/KOCUM5auwgjhw9iAP37k9lz/LCBm3WzXWJSmXrHlZt2M5fXqrhsYU1PLl4LWs27wBgQGUPjh67F6cftjdHj92Lo0YPYmCfngWO1qz0OCFYXi1du5XfPb2c++euYsHqTQAM79+LkyYOY9K4wUwatxcThvWjrMyXfMwKzQnBOtzWHXVMf34Vv521jCdffg0Jjh8/mKvOOIiTDxzGgSP6+5q/WRFyQrAOERE8t3wDd8xcxj3Pvcrm2jrGDenDF999AO87ZjT7DOpd6BDNrA1OCLZHdtY38PtnVnDz317mxVWbqOxZxlmH78MHjx3DseP28pmAWRfihGC7ZWd9A79/egU/mLGQZa9t4+CRA/j6+Ydx9pH7MKDSFcJmXZETgrVLRHDf3FX8z30vsOy1bRw+aiDXXHwopx403GcDZl2cE4Jl9ur6bVz9x3k89MJqDh45gJsvOZRTDnQiMOsunBCsTfUNwa//sYRv3v8iDQFfPvNgPn7iOI/5Y9bNOCFYqxau3sSXfjeHZ5au56QDhvH18w5jzOA+hQ7LzPLACcGataOugR8/togfPlJF317lXPfBIznvqFG+PGTWjTkh2Ju8sHIjV9zxLC+u2sTZR+7DV88+hKH9ehU6LDPLMycE28VvZy3jK3+Yy4DePfnJxyZx2iEjCh2SmXUSJwQDYPvOeq6ZNo/bZy7jbfsN4fsXHc2w/j4rMCslTgjG0rVb+Zdfz2b+yo1MPWUCV5x2AOUebM6s5DghlLgZC6q5/LZnkMTNl0zi1IN8icisVDkhlKiGhuCHM6q47qGXOGjvAdz4kbcwdoibk5qVskwJQVJvYGxELMhzPNYJNm3fyRV3PMtDL1Rz/tGj+O/zD6d3hWcjMyt1bXY1lXQ28Cxwf7p8lKRpWQ4u6XRJCyRVSbqymfX7SnpY0hxJj0oa3c74rZ1eXb+NC378d2YsqOGasw/hux840snAzIAMCQG4BjgOWA8QEc8C49vaSVI5cANwBnAIcJGkQ5ps9m3glxFxBHAt8D8Z47bd8PzyDZx3w+OsWLeNWz5+LJecON4dzczsdVkSws6I2NCkLDLsdxxQFRGLI2IHcDtwbpNtDgEeSR/PaGa9dZCH5q/mAzf+nZ7lZdz1ryfwjonDCh2SmRWZLAlhnqQPAeWSJkr6AfBEhv1GActylpenZbmeA96XPj4f6C9pSNMDSZoiaZakWTU1NRme2nLdMXMpU341iwnD+/H7T5/AgXv3L3RIZlaEsiSEzwCHArXArcAG4HMd9PxfBE6W9AxwMrACqG+6UUTcFBGTImLSsGH+ZdseP/3rYv79d8/z9onDuONTb2X4gMpCh2RmRarNVkYRsRX4cnprjxXAmJzl0WlZ7rFfJT1DkNQP+KeIWN/O57FmRATXPbSQ7z+8kDMP35vrP3g0FT08XLWZtSxLK6MHJQ3KWd5L0gMZjj0TmChpvKQK4EJgl9ZJkoZKaozhKuDmzJFbixoagmvvnc/3H17IByaN5gcXHeNkYGZtyvItMTT3V3tErAOGt7VTRNQBU4EHgBeAOyNinqRrJZ2TbjYZWCDpJWAE8PX2hW9NNTQE//nHufz88Vf4xInj+cb7jvAwFGaWSZaOaQ2SxkbEUkj6DpCtlRERMR2Y3qTs6pzHdwF3ZQ/XWtPQEHzlj3O59cml/Ovk/fnSew50s1IzyyxLQvgy8DdJjwEC3gFMyWtU1m4NDcGX//A8tz21jE9P3p9/czIws3bKUql8v6RjgLemRZ+LiDX5Dcvao6Eh+I/fP8/tM5cx9ZQJfOHdBzgZmFm7ZR3crhfwWrr9IZKIiL/kLyzLKjcZfObUCXz+NCcDM9s9bSYESf8LfBCYBzSkxQE4IRRYcplo7utnBk4GZrYnspwhnAccGBG1eY7F2iEiaU1021NL+fTk/X2ZyMz2WJZmp4uBnvkOxLKLCL46bR6/eXIpnzp5P1cgm1mHyHKGsBV4VtLDJMNXABARn81bVNaiiOB/7nuRX/59CZe+YzxXnn6Qk4GZdYgsCWEaTXoYW+H88JEqbvrLYj761n35jzMPdjIwsw6TpdnpLzojEGvbzX97me88+BLvO3oUXzvnUCcDM+tQWVoZTSSZuOYQ4PWhMiNivzzGZU3cOWsZ1947n/ccOoJvvv8IyjwchZl1sCyVyj8H/g+oA04Bfgn8Op9B2a5mvFjNlb+bwzsmDuX7Fx1Nj3IPVGdmHS/LN0vviHgYUEQsiYhrgLPyG5Y1emHlRqbe+jQHjxzAjz/yFnr18PzHZpYfWSqVa9MhqhdKmkoyp0G//IZlANWbtvPJW2bSr7IHP7v4WPr2ytqx3Mys/bKcIVwO9AE+C7wF+ChwcT6DMti2o55LfzGLdVt38rOLj2XvgZ7pzMzyK0sro5npw83Ax/MbjkHS1+ALv32WOSs2cONH3sJhowYWOiQzKwEtJgRJ10fE5yTdQzPzH0TEOc3sZh3gZ397menPr+KqMw7i3YfuXehwzKxEtHaG8Kv0/tudEYglnl66jm/c9yLvOXQEU05yy14z6zwtJoSImC2pHJgSER/enYNLOh34HlAO/DQivtFk/VjgF8CgdJsr01nWStK6LTuY+punGTmokm++/0h3PDOzTtVqpXJE1AP7Sqpo74HTZHIDcAZJp7aLJB3SZLOvkMy1fDRwIfCj9j5Pd9HQEHz+zmdZs3kHN3zoGAb29niCZta5srRjXAw8LmkasKWxMCK+28Z+xwFVEbEYQNLtwLnA/JxtAhiQPh4IvJox7m7npr8uZsaCGq4991COGD2o0OGYWQnKkhAWpbcyoH87jj0KWJazvBw4vsk21wB/lvQZoC/wruYOJGkK6TzOY8eObUcIXcPLa7bwnT8v4MzD9+ajb9230OGYWYnK0uz0a3l8/ouAWyLiO5LeBvxK0mER0ZC7UUTcBNwEMGnSpDe1eOrq/nv6C1SUl3GNB6wzswLKMrjdMOBLwKHsOrjdqW3sugIYk7M8Oi3L9Ung9PR4f5dUCQwFqtuMvJt4vGoND85fzZdOP5Dh/d35zMwKJ0tP5d8ALwLjga8BrwAzW9shNROYKGl8Wil9IW+eV2Ep8E4ASQeTJJyaTJF3A/UNwX/dO5/Re/XmEyeOL3Q4ZlbisiSEIRHxM2BnRDwWEZ8A2jo7ICLqgKnAA8ALJK2J5km6VlJjp7YvAJdKeg64DbgkIrrdJaGW3DFzGS+u2sRVZxxMZU8PWmdmhZWlUnlner9S0lkkLYEGZzl42qdgepOyq3MezwdOzBZq97Jx+06+8+cFHDtuL8483L2RzazwWhu6omdE7AT+n6SBJL/mf0DSTPSKToqv27rhkSpe27qDW957nCuSzawotHaGsCLte3AbsDEi5pJMkGN76NX12/j5469w/tGjOHy0B64zs+LQWh3CwSQVw18Blkn6nqS3dk5Y3dsPZ1QRBFe864BCh2Jm9roWE0JErI2IGyPiFJJex4uB6yQtkvT1Touwm1m6dit3zlzGhceOZczgPoUOx8zsdZkm542IV4GfkcytvAn453wG1Z197+GFlJeJqadOKHQoZma7aDUhSKqUdIGku4EqkuamVwL7dEZw3U1V9WZ+/8xyPva2fRkxwJ3QzKy4tNbK6FaSsYUeI+mc9qGI2N5ZgXVH1z/0EpU9y/mXk/cvdChmZm/SWiuj+4FPRcSmzgqmO3th5UbunbOSqadMYEi/XoUOx8zsTVqbIOeXnRlId/fdB1+if2UPLn2HZ0Ezs+KUqVLZ9syc5et5cP5qLn3Hfgzs44lvzKw4OSF0gusfWsigPj35+InjCh2KmVmLWqtUfl9rO0bE3R0fTvfzzNJ1PPJiNf/2ngPpX+mzAzMrXq1VKp+d3g8HTgAeSZdPAZ4AnBAyuO6hhQzuW8HFJ4wrdChmZq1qrVL54wCS/gwcEhEr0+WRwC2dEl0XN3vJa/zlpRquOuMg+vXKMrCsmVnhZKlDGNOYDFKrge43sXEeXPfgQob2q+Cjb/M8yWZW/LL8bH1Y0gMko54CfBB4KH8hdQ9Pvfwaf6taw1fOOpg+FT47MLPi1+Y3VURMlXQ+cFJadFNE/D6/YXV91z/0EsP69+LDx/vswMy6hqw/XZ8GNkXEQ5L6SOrvHswte3bZep5YtJYvn3kwvSs8NaaZdQ1t1iFIuhS4C7gxLRoF/CHLwSWdLmmBpCpJVzaz/jpJz6a3lyStzx568frxo4sYUNmDi453VYuZdR1ZzhAuI5kP4UmAiFgoaXhbO0kqB24ATgOWAzMlTUvnUSY91hU5238GOLp94RefRTWbeWD+Ki6bPMEti8ysS8nSyqg2InY0LkjqAUSG/Y4DqiJicbr/7cC5rWx/EW9UXHdZNz22mIryMi5xr2Qz62KyJITHJP0H0FvSacBvgXsy7DcKWJazvDwtexNJ+wLjeaPzW9P1UyTNkjSrpqYmw1MXxqoN27n7meV8YNIYhnpEUzPrYrIkhCuBGuB54FPAdJJ5ljvShcBdEVHf3MqIuCkiJkXEpGHDhnXwU3ecmx9/mfqG8IimZtYlZWl22gD8JL21xwpgTM7y6LSsOReS1FV0WRu27uQ3/1jCe4/Yh7FDPFeymXU9WVoZnSjpwbQV0GJJL0tanOHYM4GJksZLqiD50p/WzPEPAvYC/t7e4IvJr59cwpYd9XzqZJ8dmFnXlKUZzM+AK4DZQLOXdJoTEXWSpgIPAOXAzRExT9K1wKyIaEwOFwK3R0SWiuqiVN8Q/PofS3jHxKEcus/AQodjZrZbsiSEDRFx3+4cPCKmk9Q55JZd3WT5mt05djF5YtEaVm7YzpfPOrjQoZiZ7bYsCWGGpG+RDHdd21gYEU/nLaou5q7ZyxlQ2YN3HTyi0KGYme22LAnh+PR+Uk5ZAKd2fDhdz8btO7l/7ioumDSayp4epsLMuq4srYxO6YxAuqp7n1tJbV0DF7xlTNsbm5kVsdam0PxIRPxa0uebWx8R381fWF3HXbOXMXF4P44Y7cpkM+vaWmt22je979/CreQtqtnM00vXc8Gk0UgqdDhmZnuktSk0b0zvv9Z54XQtd81eTnmZOO+oZkfkMDPrUtqsQ5BUCXwSOBSobCyPiE/kMa6iV98Q3P30ck4+YBjDB1S2vYOZWZHLMpbRr4C9gfcAj5EMQVHyk+P8rWoNqzfWcsFbRhc6FDOzDpElIUyIiP8EtkTEL4CzeKMpasn63ezlDOrTk1MPbnNqCDOzLiFLQtiZ3q+XdBgwECjpb8GtO+p4cP5qzjp8JL16uO+BmXUPWTqm3SRpL+A/SQan6wdc3fou3dvDL1SzbWc9Zx+5T6FDMTPrMFk6pv00ffgY4KE8gXvnvMrw/r04dtzgQodiZtZhWuuY1myHtEal2jFt0/adzFhQw4ePH0t5mfsemFn30doZgjufNePB+avZUdfAe4/w5SIz615a65jmDmnNuOe5Vxk1qDfHjB1U6FDMzDpUlhnT9pN0j6QaSdWS/iipJOsS1m3ZwV8XruG9R4z0UBVm1u1kaXZ6K3AnMBLYB/gtcFs+gypWD8xbRV1DuHWRmXVLWRJCn4j4VUTUpbdfkzOERWsknS5pgaQqSVe2sM0HJM2XNE/Sre0JvrPdM+dVxg/ty6H7DCh0KGZmHS5LP4T70i/z20kmxvkgMF3SYICIeK25nSSVAzcApwHLgZmSpkXE/JxtJgJXASdGxDpJRdvhrWZTLX9ftJbLTpngy0Vm1i1lSQgfSO8/1aT8QpIE0VJ9wnFAVUQsBpB0O3AuMD9nm0uBGyJiHUBEVGeMu9PdN3clDYEvF5lZt5WlY9r43Tz2KGBZzvJy3jwG0gEAkh4HyoFrIuL+pgeSNAWYAjB27NjdDGfP3D93FROG9+OAEW6Na2bdU5ZWRv+VXv5pXB4g6ecd9Pw9gInAZOAi4CeSBjXdKCJuiohJETFp2LBhHfTU2W2urWPmK69x6kFFe0XLzGyPZalU7gE8JekISacBM4HZGfZbAeRONDw6Lcu1HJgWETsj4mXgJZIEUVSeqFrDzvpg8gGdn4zMzDpLlktGV0l6CHgSWAecFBFVGY49E5goaTxJIrgQ+FCTbf5Acmbwc0lDSS4hLc4efud49KUa+laUM8ljF5lZN5blktFJwPeBa4FHgR9IarNmNSLqgKnAA8ALwJ0RMU/StZLOSTd7AFgraT4wA/i3iFi7W68kTyKCxxbUcMKEoVT0yHJCZWbWNWVpZfRt4ILG5qKS3gc8AhzU1o4RMR2Y3qTs6pzHAXw+vRWlqurNrFi/jU+fsn+hQzEzy6ssCeFtEVHfuBARd0t6LI8xFZVHF9QAMPlAVyibWffW4jUQSdcDRES9pMubrP5OPoMqJo++VM3E4f0YNah3oUMxM8ur1i6Kn5Tz+OIm647IQyxFZ0ttHTNfXsfkA926yMy6v9YSglp4XDKeWLSWHfUNvlxkZiWhtTqEsnQu5bKcx42JoSRmln90QTV9KsqZNG6vQodiZpZ3rSWEgSQd0BqTwNM56yJvERWJiODRBTWcsP9QevUoifxnZiWutRnTxnViHEVnUU3S3PRfJ7u5qZmVBve0asEbzU1doWxmpcEJoQV/XbiG/Yf1ZfRefQodiplZp3BCaMaOugZmvvIaJ04YWuhQzMw6TaaEIOntkj6ePh6WDljXbc1Zvp6tO+o5Yf8hhQ7FzKzTZBnc7qvAv5NMdQnQE/h1PoMqtCcWrUWCt+7nhGBmpSPLGcL5wDnAFoCIeBXo1tOGPV61hkP3GcCgPhWFDsXMrNNkSQg70lFJA0BS3/yGVFjbdtTzzNL1nLC/6w/MrLRkSQh3SroRGCTpUuAh4Cf5DatwZi9Zx476Bt7m+gMzKzFZZkz7djp15kbgQODqiHgw75EVyBOL1tCjTBzr2dHMrMS0mRAkfR64ozsngVxPLFrLkWMG0a9XlqkizMy6jyyXjPoDf5b0V0lTJY3Id1CFsnH7TuYsX+/mpmZWktpMCBHxtYg4FLgMGAk8JumhLAeXdLqkBZKqJF3ZzPpLJNVIeja9/XO7X0EHemrxazQErlA2s5LUnusi1cAqYC3Q5gQBksqBG4DTgOXATEnTGudmznFHRExtRxx588SitfTqUcbRYwcVOhQzs06XpWPapyU9CjwMDAEujYgsM6YdB1RFxOKI2AHcDpy7J8Hm2xOL1jBp3F5U9vRw12ZWerLUIYwBPhcRh0bENc38wm/JKGBZzvLytKypf5I0R9JdksY0dyBJUyTNkjSrpqYm49O3z9rNtby4apMvF5lZyWoxIUgakD78FrBU0uDcWwc9/z3AuPSM40HgF81tFBE3RcSkiJg0bFh+hqP+x+LXANz/wMxKVmt1CLcC7yWZNS3YdV7lAPZr49grSM4uGo1Oy944SMTanMWfAt9s45h5M/OV1+hTUc4RowYWKgQzs4Jqbca096b3uzuy6UxgYjoy6grgQuBDuRtIGhkRK9PFc4AXdvO59thLqzcxcUR/epR7RHAzK01ZKpUfzlLWVETUAVOBB0i+6O+MiHmSrpV0TrrZZyXNk/Qc8FngkvYE35GqqjczcXi/Qj29mVnBtXiGIKkS6AMMlbQXb1wyGkDzlcNvEhHTgelNyq7OeXwVbwyrXTAbtu6kelOtE4KZlbTW6hA+BXwO2IekHqExIWwEfpjfsDpXVc0mACY4IZhZCWutDuF7wPckfSYiftCJMXW6has3AzBxeLee5sHMrFVZRjv9gaTDgEOAypzyX+YzsM60sHozlT3LGLVX70KHYmZWMFlGO/0qMJkkIUwHzgD+BnSbhFBVvZn9h/WjvExtb2xm1k1laWP5fuCdwKqI+DhwJNCtGuu7hZGZWbaEsC0iGoC6tPdyNbt2OOvSNtfWsWL9NiaOcP2BmZW2LKOdzpI0iGTazNnAZuDv+QyqMy2qTiqU9x/mMwQzK21ZKpU/nT78saT7gQERMSe/YXWeqjQhTBzhhGBmpa21jmnHtLYuIp7OT0ida2H1ZnqWi30H9yl0KGZmBdXaGcJ3WlkXwKkdHEtBVFVvYr+h/TyGkZmVvNY6pp3SmYEUysLqzRzmEU7NzDL1Q/hYc+XdoWPa9p31LHttK+cfnWloJjOzbi1LK6Njcx5XkvRJeJpu0DFtcc0WGsJjGJmZQbZWRp/JXU6boN6er4A608LqZFA7j2FkZpatY1pTW4DdnTSnqFRVb6a8TIwb6hZGZmZZ6hDuIWlVBEkCOQS4M59BdZaFqzez75A+9OpRXuhQzMwKLksdwrdzHtcBSyJieZ7i6VRVNR7DyMysUZuXjCLisYh4DHiGZCrMrZIGZzm4pNMlLZBUJenKVrb7J0khaVLmyPfQjroGXlmzxRXKZmapLJeMpgDXAtuBBpKZ0wLYr439yoEbgNOA5cBMSdMiYn6T7foDlwNP7s4L2F1L1m6hriFcoWxmlspSqfxvwGERMS4i9ouI8RHRajJIHQdURcTiiNhB0jLp3Ga2+y/gf0kSTqdZmI5h5DMEM7NEloSwCNi6G8ceBSzLWV6elr0uHS9pTET8qbUDSZoiaZakWTU1NbsRypt5lFMzs11lqVS+CnhC0pNAbWNhRHx2T55YUhnwXeCStraNiJuAmwAmTZoUbWyeyasbtjO0XwW9K9zCyMwMsiWEG4FHgOdJ6hCyWsGuE+mMTssa9QcOAx6VBLA3ME3SORExqx3Ps1uqN25nxIDKtjc0MysRWRJCz4j4/G4ceyYwUdJ4kkRwIfChxpURsQEY2rgs6VHgi52RDABWOSGYme0iSx3Cfek1/JGSBjfe2topIuqAqcADJM1V74yIeZKulXTOHsa9x1ZvrGXEgF6FDsPMrGhkOUO4KL2/KqeszWanABExHZjepOzqFradnCGWDrGzvoG1W2p9hmBmliPL4HbdYtyiXDWbaonACcHMLEdJzoewamPS5WFvJwQzs9eV5HwI1WlCGO46BDOz15XkfAirNybdKXyGYGb2hpKcD2HVxu30LBd79akodChmZkWjJOdDWL1xO8P7V1JWpkKHYmZWNEpyPoTVG7e7D4KZWRMtJgRJE4AR6VwIueUnSuoVEYvyHl2erN5Y64lxzMyaaK0O4XpgYzPlG9N1XdbqDR62wsysqdYSwoiIeL5pYVo2Lm8R5dmW2jo21dY5IZiZNdFaQhjUyrreHRxHp1nd2CltoOsQzMxytZYQZkm6tGmhpH8GZucvpPxq7IMwor/PEMzMcrXWyuhzwO8lfZg3EsAkoAI4P89x5U3jGcKIgU4IZma5WkwIEbEaOEHSKSQT2QD8KSIe6ZTI8uT1hOA6BDOzXWQZumIGMKMTYukUqzZup1+vHvTrlaULhplZ6didoSu6tOqNtR7UzsysGSWXEFZt3O4KZTOzZpRcQli9cTt7u0LZzOxN8poQJJ0uaYGkKklXNrP+XyQ9L+lZSX+TdEg+44kIXzIyM2tB3hKCpHLgBuAMkhFSL2rmC//WiDg8Io4Cvgl8N1/xAKzbupMd9Q2eB8HMrBn5PEM4DqiKiMURsYNkUp1zczeIiNyxkvryxjDbeeEmp2ZmLctn28tRwLKc5eXA8U03knQZ8HmSDm+nNncgSVOAKQBjx47d7YBWOSGYmbWo4JXKEXFDROwP/DvwlRa2uSkiJkXEpGHDhu32c1W/nhBch2Bm1lQ+E8IKYEzO8ui0rCW3A+flMR5WbUjGMRruZqdmZm+Sz4QwE5goabykCuBCYFruBpIm5iyeBSzMYzys3rSdIX0rqOhR8BMjM7Oik7c6hIiokzQVeAAoB26OiHmSrgVmRcQ0YKqkdwE7gXXAxfmKB5KJcYa7/sDMrFl5HdAnIqYD05uUXZ3z+PJ8Pn9TqzdtZ2/XH5iZNaukrp2s2lDrFkZmZi0omYSws76BtVucEMzMWlIyCaFmUy0R7oNgZtaSkkkInkvZzKx1JZcQ3AfBzKx5JZQQkk5pHvrazKx5JZMQRg6s5N2HjGBwn4pCh2JmVpRKZmLhdx+6N+8+dO9Ch2FmVrRK5gzBzMxa54RgZmaAE4KZmaWcEMzMDHBCMDOzlBOCmZkBTghmZpZyQjAzMwAUEYWOoV0k1QBLdnP3ocCaDgynoxVzfMUcGxR3fMUcGxR3fMUcG3St+PaNiGGtbdzlEsKekDQrIiYVOo6WFHN8xRwbFHd8xRwbFHd8xRwbdL/4fMnIzMwAJwQzM0uVWkK4qdABtKGY4yvm2KC44yvm2KC44yvm2KCbxVdSdQhmZtayUjtDMDOzFjghmJkZUEIJQdLpkhZIqpJ0ZRHEc7Okaklzc8oGS3pQ0sL0fq8CxTZG0gxJ8yXNk3R5scQnqVLSU5KeS2P7Wlo+XtKT6ed7h6SCTo0nqVzSM5LuLab4JL0i6XlJz0qalZYV/HPNiW+QpLskvSjpBUlvK4b4JB2YvmeNt42SPlcMseXEeEX6PzFX0m3p/0q7/u5KIiFIKgduAM4ADgEuknRIYaPiFuD0JmVXAg9HxETg4XS5EOqAL0TEIcBbgcvS96sY4qsFTo2II4GjgNMlvRX4X+C6iJgArAM+WYDYcl0OvJCzXEzxnRIRR+W0Ty+Gz7XR94D7I+Ig4EiS97Dg8UXEgvQ9Owp4C7AV+H0xxAYgaRTwWWBSRBwGlAMX0t6/u4jo9jfgbcADOctXAVcVQVzjgLk5ywuAkenjkcCCQseYxvJH4LRiiw/oAzwNHE/SG7NHc593AeIaTfLlcCpwL6BiiQ94BRjapKwoPldgIPAyaWOXYosvJ553A48XU2zAKGAZMJhkauR7gfe09++uJM4QeOPNarQ8LSs2IyJiZfp4FTCikMEASBoHHA08SZHEl16OeRaoBh4EFgHrI6Iu3aTQn+/1wJeAhnR5CMUTXwB/ljRb0pS0rCg+V2A8UAP8PL3c9lNJfYsovkYXArelj4sitohYAXwbWAqsBDYAs2nn312pJIQuJ5KUXtA2wZL6Ab8DPhcRG3PXFTK+iKiP5NR9NHAccFAh4miOpPcC1RExu9CxtODtEXEMyeXTyySdlLuywH93PYBjgP+LiKOBLTS5BFPo/4v0Gvw5wG+britkbGndxbkkSXUfoC9vviTdplJJCCuAMTnLo9OyYrNa0kiA9L66UIFI6kmSDH4TEXcXW3wAEbEemEFyKjxIUo90VSE/3xOBcyS9AtxOctnoexRJfOkvSSKimuQa+HEUz+e6HFgeEU+my3eRJIhiiQ+SRPp0RKxOl4sltncBL0dETUTsBO4m+Vts199dqSSEmcDEtMa9guSUb1qBY2rONODi9PHFJNfuO50kAT8DXoiI7+asKnh8koZJGpQ+7k1St/ECSWJ4fyFjA4iIqyJidESMI/k7eyQiPlwM8UnqK6l/42OSa+FzKYLPFSAiVgHLJB2YFr0TmE+RxJe6iDcuF0HxxLYUeKukPun/b+N7176/u0JWznRypcuZwEsk15u/XATx3EZyrW8nyS+jT5Jca34YWAg8BAwuUGxvJzn1nQM8m97OLIb4gCOAZ9LY5gJXp+X7AU8BVSSn872K4DOeDNxbLPGlMTyX3uY1/h8Uw+eaE+NRwKz08/0DsFexxEdyGWYtMDCnrChiS2P5GvBi+n/xK6BXe//uPHSFmZkBpXPJyMzM2uCEYGZmgBOCmZmlnBDMzAxwQjAzs5QTggEgKSR9J2f5i5Ku6aBj3yLp/W1vucfPc0E6QuaMJuXjJG1LR6mcL+nHkt70ty9pH0l37eZzn6PdHEU3jW9uC+sOkDQ9HU3zaUl3Sir00A17RNJ5RTC4pDXDCcEa1QLvkzS00IHkyullmcUngUsj4pRm1i2KZLiLI0hGvD2v6fNExKsRsVuJKyKmRcQ3dmfflkiqBP5EMpTDxEiGnPgRMKwjn6cAziP5DKzIOCFYozqS+VevaLqi6S98SZvT+8mSHpP0R0mLJX1D0oeVzFfwvKT9cw7zLkmzJL2UjvfTOEjdtyTNlDRH0qdyjvtXSdNIels2jeei9PhzJf1vWnY1SYe6n0n6VksvMpKBvp4AJki6RNI0SY8AD+f+Uk/X3S3p/vTX+Tdznv/09Nf6c5Ieztn+hznv14+beb3j0tf1dHo7oY3P5EPA3yPinpz4H42IuUrGuv95+j48I+mUnDj+oGRs/lckTZX0+XSbf0ganG73qKTvpWdNcyUdl5YPTvefk25/RFp+jZI5PB5NP+vP5rwfH0k/82cl3ahkuHkkbZb09fR9+oekEelrPgf4Vrr9/pI+m565zZF0exvvieVToXrV+VZcN2AzMIBkeOSBwBeBa9J1twDvz902vZ8MrCcZ9rcXyTgpX0vXXQ5cn7P//SQ/QCaS9MyuBKYAX0m36UXSQ3V8etwtwPhm4tyHpJv+MJLB0B4BzkvXPUoyHnzTfcaRDjNOMmT2TJIxaS5JYxnczHaXAIvT96ISWEIyHtYwkpFzx6fbDc7Z/odtvN4+QGW6zURgVtPnbRL3d4HLW/i8vgDcnD4+KH1PKtM4qoD+aawbgH9Jt7uOZKDCxvfqJ+njk3Je9w+Ar6aPTwWeTR9fQ5JIewFDSXrs9gQOBu4Beqbb/Qj4WPo4gLPTx9/M+axvYde/p1dJe9ACgwr9v1DKt/acjls3FxEbJf2SZKKNbRl3mxnp8L+SFgF/TsufB3Iv3dwZEQ3AQkmLSb7E3g0ckXP2MZDki3IH8FREvNzM8x0LPBoRNelz/obkC+0PbcS5v5IhswP4Y0TcJ+kS4MGIeK2FfR6OiA3p88wH9iUZSuEvjbG1sm9zr/dl4IeSjgLqgQPaiLk1byf58iYiXpS0JOd4MyJiE7BJ0gaSL2xIPpMjco5xW7r/XyQNUDJG1NuBf0rLH5E0RNKAdPs/RUQtUCupmmSo53eSTBgzUxJAb94Y4G0Hybj8kAzFfFoLr2UO8BtJf6Dtz9HyyAnBmrqeZNKZn+eU1ZFeXlRSGZs7DV9tzuOGnOUGdv37ajpGSpBMHPOZiHggd4WkySRnCB2psQ6hqdaeJ/e11dO+/5fmXu8VwGqSmcDKgO1tHGMecHI7nrPRnnwmWY/b+H4I+EVEXNXM9jsj/dlP6+/fWSRJ/Wzgy5IOjzfG8LdO5DoE20X6i/dOdp1q7xWSX4GQXP/tuRuHvkBSWVqvsB/JTFMPAP+qZKjtxhY1fds4zlPAyZKGpteqLwIe2414dtc/gJMkjYfkmnsL2zX3egcCK9Mzh4+STHPYmluBEySd1Vgg6SRJhwF/BT6clh0AjE2foz0+mO7/dmBDejaUe9zJwJpoMhdGEw8D75c0PN1nsKR923jeTSSXtBp/YIyJiBnAv5O8R/3a+Tqsg/gMwZrzHWBqzvJPgD9Keo7k2vju/HpfSvJlPoDkmvZ2ST8luX7+tJLrDTU0af3TVESsVNK8cwbJr9M/RUSnDTkcETVKZhq7O/0yq6b5SyHNvd4fAb+T9DEyvI8RsS2tkL5e0vUkI+POIamf+RHwf5KeJzmDuyQiatPLNlltl/QMSYL/RFp2DXCzpDkk8wZf3MK+jTHOl/QVklnYytIYLyOpc2nJ7cBP0orpC0kaAgwk+Ty/H8k8F1YAHu3UrINJuoVk2Ovd6tPQGSQ9CnwxImYVOhYrHr5kZGZmgM8QzMws5TMEMzMDnBDMzCzlhGBmZoATgpmZpZwQzMwMgP8PWAUYuqUlpZIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pca_test = PCA().fit(df_scaled)\n",
    "plt.plot(np.cumsum(pca_test.explained_variance_ratio_))\n",
    "plt.xlabel('Number of Principal Components')\n",
    "plt.ylabel('Cumulative Explained Variance')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### This Scree plot shows the variance explained by each principal component within the un-normalised dataset.\n",
    "\n",
    "Therefore, using the un-normalised dataset for PCA, only around **5 to 7** principal components are needed to explain the entire (99.9...%) variation of the original dataset. This is a very large dimension reduction.\n",
    "\n",
    "Thus, looking at the Environment Variables (at the top of the notebook), the 'dimensions_num_for_PCA' variable will be set to between **5 and 7** based upon this evidence, to maximise efficiency and also dataset accuracy (after PCA). If the non-normalised dataset is being used, of course.\n",
    "\n",
    "(Code reference: https://medium.com/district-data-labs/principal-component-analysis-with-python-4962cd026465)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# The df_no_labels dataset holds the un-normalised dataset.\n",
    "pca_test = PCA().fit(df_no_labels)\n",
    "plt.plot(np.cumsum(pca_test.explained_variance_ratio_))\n",
    "plt.xlabel('Number of Principal Components')\n",
    "plt.ylabel('Cumulative Explained Variance')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Important note on these above scree plot results ^\n",
    "\n",
    "**The results of these graphs can change/ vary between different datasets used. Thus, these need to be inspected each time a new dataset (.csv file) is to be run on this code. Then, using the information the plots show, one should alter the environment variables, and thus the Neural Network/ MLP model's hyperparamters (tuning the Neural Network hyperparameters relies on knowing and using the number of features in a dataset).**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Now fitting and transforming the data with PCA\n",
    "\n",
    "Thus, the optimal number of principle components is set to the environment variable and this is now used to produce the appropriate multi-dimensional principle component array. This will be formatted back to a Pandas dataframe afterwards.\n",
    "\n",
    "References: https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html and https://towardsdatascience.com/pca-using-python-scikit-learn-e653f8989e60"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-8.16580279e+06, -1.19915322e+06,  1.27263308e+05, ...,\n",
       "         8.93600581e+05,  2.96811663e+05,  5.98234594e+03],\n",
       "       [-8.08590567e+06, -1.19861324e+06,  9.21736216e+04, ...,\n",
       "         8.99819189e+05,  2.96878115e+05,  5.81150453e+03],\n",
       "       [-1.00194924e+07, -1.22629216e+06,  2.02487220e+05, ...,\n",
       "        -2.15507753e+05, -5.82407941e+04, -3.75222176e+04],\n",
       "       ...,\n",
       "       [-9.77881129e+06,  1.20711384e+05,  1.08402286e+05, ...,\n",
       "        -1.99889067e+05, -4.93926336e+04, -4.26804840e+04],\n",
       "       [-9.80388112e+06, -4.42548507e+05,  1.21580327e+05, ...,\n",
       "        -1.96639141e+05, -4.85337246e+04, -3.96503044e+04],\n",
       "       [-9.72175186e+06, -6.79955648e+05,  1.08244069e+05, ...,\n",
       "        -1.93449359e+05, -3.30418761e+04, -3.68706087e+04]])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pca = PCA(n_components=dimensions_num_for_PCA)\n",
    "#principal_components = pca.fit(df_scaled).transform(df_scaled) => for normalised PCA\n",
    "\n",
    "# Non-normalised PCA\n",
    "principal_components = pca.fit(df_no_labels).transform(df_no_labels)\n",
    "principal_components"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Getting Principal Component feature names, dynamically\n",
    "\n",
    "Getting the Principal Component feature names, dynamically, for the optimal number of components (passed in as a param). Allows dynamic changing of PCs used. \n",
    "\n",
    "i.e. **One can change the 'dimensions_num_for_PCA' environment variable, and all the code will still work.**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# See Methods at the top of the notebook\n",
    "principal_component_headings = get_PCA_feature_names(dimensions_num_for_PCA)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Turning the Principal Components back into a Pandas Dataframe, ready for concatting back with the **label** feature."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Principal component 1</th>\n",
       "      <th>Principal component 2</th>\n",
       "      <th>Principal component 3</th>\n",
       "      <th>Principal component 4</th>\n",
       "      <th>Principal component 5</th>\n",
       "      <th>Principal component 6</th>\n",
       "      <th>Principal component 7</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-8.165803e+06</td>\n",
       "      <td>-1.199153e+06</td>\n",
       "      <td>127263.307756</td>\n",
       "      <td>231525.444244</td>\n",
       "      <td>893600.580534</td>\n",
       "      <td>296811.662984</td>\n",
       "      <td>5982.345935</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-8.085906e+06</td>\n",
       "      <td>-1.198613e+06</td>\n",
       "      <td>92173.621578</td>\n",
       "      <td>222554.882115</td>\n",
       "      <td>899819.189254</td>\n",
       "      <td>296878.115459</td>\n",
       "      <td>5811.504529</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.001949e+07</td>\n",
       "      <td>-1.226292e+06</td>\n",
       "      <td>202487.219507</td>\n",
       "      <td>-114026.034526</td>\n",
       "      <td>-215507.753418</td>\n",
       "      <td>-58240.794133</td>\n",
       "      <td>-37522.217603</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-8.104574e+06</td>\n",
       "      <td>-1.198907e+06</td>\n",
       "      <td>114579.819424</td>\n",
       "      <td>232052.538819</td>\n",
       "      <td>886792.249240</td>\n",
       "      <td>309302.450961</td>\n",
       "      <td>6391.775131</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1.001953e+07</td>\n",
       "      <td>-1.226232e+06</td>\n",
       "      <td>202496.514118</td>\n",
       "      <td>-114079.976276</td>\n",
       "      <td>-215668.219754</td>\n",
       "      <td>-58255.708667</td>\n",
       "      <td>-37616.209415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286091</th>\n",
       "      <td>-9.702691e+06</td>\n",
       "      <td>-6.754558e+05</td>\n",
       "      <td>108811.962532</td>\n",
       "      <td>-113698.699726</td>\n",
       "      <td>-192210.876425</td>\n",
       "      <td>-27627.809010</td>\n",
       "      <td>-36484.272722</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286092</th>\n",
       "      <td>-9.338204e+06</td>\n",
       "      <td>-9.387585e+05</td>\n",
       "      <td>107612.275294</td>\n",
       "      <td>-53678.418683</td>\n",
       "      <td>-166703.000669</td>\n",
       "      <td>86349.888528</td>\n",
       "      <td>-14930.171400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286093</th>\n",
       "      <td>-9.778811e+06</td>\n",
       "      <td>1.207114e+05</td>\n",
       "      <td>108402.286219</td>\n",
       "      <td>-123110.822316</td>\n",
       "      <td>-199889.066997</td>\n",
       "      <td>-49392.633591</td>\n",
       "      <td>-42680.484006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286094</th>\n",
       "      <td>-9.803881e+06</td>\n",
       "      <td>-4.425485e+05</td>\n",
       "      <td>121580.327254</td>\n",
       "      <td>-122251.188352</td>\n",
       "      <td>-196639.141355</td>\n",
       "      <td>-48533.724648</td>\n",
       "      <td>-39650.304436</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286095</th>\n",
       "      <td>-9.721752e+06</td>\n",
       "      <td>-6.799556e+05</td>\n",
       "      <td>108244.069483</td>\n",
       "      <td>-118019.196569</td>\n",
       "      <td>-193449.359416</td>\n",
       "      <td>-33041.876060</td>\n",
       "      <td>-36870.608685</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>286096 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Principal component 1  Principal component 2  Principal component 3  \\\n",
       "0               -8.165803e+06          -1.199153e+06          127263.307756   \n",
       "1               -8.085906e+06          -1.198613e+06           92173.621578   \n",
       "2               -1.001949e+07          -1.226292e+06          202487.219507   \n",
       "3               -8.104574e+06          -1.198907e+06          114579.819424   \n",
       "4               -1.001953e+07          -1.226232e+06          202496.514118   \n",
       "...                       ...                    ...                    ...   \n",
       "286091          -9.702691e+06          -6.754558e+05          108811.962532   \n",
       "286092          -9.338204e+06          -9.387585e+05          107612.275294   \n",
       "286093          -9.778811e+06           1.207114e+05          108402.286219   \n",
       "286094          -9.803881e+06          -4.425485e+05          121580.327254   \n",
       "286095          -9.721752e+06          -6.799556e+05          108244.069483   \n",
       "\n",
       "        Principal component 4  Principal component 5  Principal component 6  \\\n",
       "0               231525.444244          893600.580534          296811.662984   \n",
       "1               222554.882115          899819.189254          296878.115459   \n",
       "2              -114026.034526         -215507.753418          -58240.794133   \n",
       "3               232052.538819          886792.249240          309302.450961   \n",
       "4              -114079.976276         -215668.219754          -58255.708667   \n",
       "...                       ...                    ...                    ...   \n",
       "286091         -113698.699726         -192210.876425          -27627.809010   \n",
       "286092          -53678.418683         -166703.000669           86349.888528   \n",
       "286093         -123110.822316         -199889.066997          -49392.633591   \n",
       "286094         -122251.188352         -196639.141355          -48533.724648   \n",
       "286095         -118019.196569         -193449.359416          -33041.876060   \n",
       "\n",
       "        Principal component 7  \n",
       "0                 5982.345935  \n",
       "1                 5811.504529  \n",
       "2               -37522.217603  \n",
       "3                 6391.775131  \n",
       "4               -37616.209415  \n",
       "...                       ...  \n",
       "286091          -36484.272722  \n",
       "286092          -14930.171400  \n",
       "286093          -42680.484006  \n",
       "286094          -39650.304436  \n",
       "286095          -36870.608685  \n",
       "\n",
       "[286096 rows x 7 columns]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_pc = pd.DataFrame(data = principal_components, columns = principal_component_headings)\n",
    "df_pc"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Joining/ concatinating the label feature back onto the pca transformed dataset. \n",
    "\n",
    "Label still needs to be transformed into binary data (for model comprehension/ understanding i.e. the model doesn't understand string data but string data can be transformed into numeric data, which is model can understand and use).\n",
    "\n",
    "See the Pandas.concat docs here: https://pandas.pydata.org/docs/reference/api/pandas.concat.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Principal component 1</th>\n",
       "      <th>Principal component 2</th>\n",
       "      <th>Principal component 3</th>\n",
       "      <th>Principal component 4</th>\n",
       "      <th>Principal component 5</th>\n",
       "      <th>Principal component 6</th>\n",
       "      <th>Principal component 7</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-8.165803e+06</td>\n",
       "      <td>-1.199153e+06</td>\n",
       "      <td>127263.307756</td>\n",
       "      <td>231525.444244</td>\n",
       "      <td>893600.580534</td>\n",
       "      <td>296811.662984</td>\n",
       "      <td>5982.345935</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-8.085906e+06</td>\n",
       "      <td>-1.198613e+06</td>\n",
       "      <td>92173.621578</td>\n",
       "      <td>222554.882115</td>\n",
       "      <td>899819.189254</td>\n",
       "      <td>296878.115459</td>\n",
       "      <td>5811.504529</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.001949e+07</td>\n",
       "      <td>-1.226292e+06</td>\n",
       "      <td>202487.219507</td>\n",
       "      <td>-114026.034526</td>\n",
       "      <td>-215507.753418</td>\n",
       "      <td>-58240.794133</td>\n",
       "      <td>-37522.217603</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-8.104574e+06</td>\n",
       "      <td>-1.198907e+06</td>\n",
       "      <td>114579.819424</td>\n",
       "      <td>232052.538819</td>\n",
       "      <td>886792.249240</td>\n",
       "      <td>309302.450961</td>\n",
       "      <td>6391.775131</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1.001953e+07</td>\n",
       "      <td>-1.226232e+06</td>\n",
       "      <td>202496.514118</td>\n",
       "      <td>-114079.976276</td>\n",
       "      <td>-215668.219754</td>\n",
       "      <td>-58255.708667</td>\n",
       "      <td>-37616.209415</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286091</th>\n",
       "      <td>-9.702691e+06</td>\n",
       "      <td>-6.754558e+05</td>\n",
       "      <td>108811.962532</td>\n",
       "      <td>-113698.699726</td>\n",
       "      <td>-192210.876425</td>\n",
       "      <td>-27627.809010</td>\n",
       "      <td>-36484.272722</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286092</th>\n",
       "      <td>-9.338204e+06</td>\n",
       "      <td>-9.387585e+05</td>\n",
       "      <td>107612.275294</td>\n",
       "      <td>-53678.418683</td>\n",
       "      <td>-166703.000669</td>\n",
       "      <td>86349.888528</td>\n",
       "      <td>-14930.171400</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286093</th>\n",
       "      <td>-9.778811e+06</td>\n",
       "      <td>1.207114e+05</td>\n",
       "      <td>108402.286219</td>\n",
       "      <td>-123110.822316</td>\n",
       "      <td>-199889.066997</td>\n",
       "      <td>-49392.633591</td>\n",
       "      <td>-42680.484006</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286094</th>\n",
       "      <td>-9.803881e+06</td>\n",
       "      <td>-4.425485e+05</td>\n",
       "      <td>121580.327254</td>\n",
       "      <td>-122251.188352</td>\n",
       "      <td>-196639.141355</td>\n",
       "      <td>-48533.724648</td>\n",
       "      <td>-39650.304436</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286095</th>\n",
       "      <td>-9.721752e+06</td>\n",
       "      <td>-6.799556e+05</td>\n",
       "      <td>108244.069483</td>\n",
       "      <td>-118019.196569</td>\n",
       "      <td>-193449.359416</td>\n",
       "      <td>-33041.876060</td>\n",
       "      <td>-36870.608685</td>\n",
       "      <td>BENIGN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>286096 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Principal component 1  Principal component 2  Principal component 3  \\\n",
       "0               -8.165803e+06          -1.199153e+06          127263.307756   \n",
       "1               -8.085906e+06          -1.198613e+06           92173.621578   \n",
       "2               -1.001949e+07          -1.226292e+06          202487.219507   \n",
       "3               -8.104574e+06          -1.198907e+06          114579.819424   \n",
       "4               -1.001953e+07          -1.226232e+06          202496.514118   \n",
       "...                       ...                    ...                    ...   \n",
       "286091          -9.702691e+06          -6.754558e+05          108811.962532   \n",
       "286092          -9.338204e+06          -9.387585e+05          107612.275294   \n",
       "286093          -9.778811e+06           1.207114e+05          108402.286219   \n",
       "286094          -9.803881e+06          -4.425485e+05          121580.327254   \n",
       "286095          -9.721752e+06          -6.799556e+05          108244.069483   \n",
       "\n",
       "        Principal component 4  Principal component 5  Principal component 6  \\\n",
       "0               231525.444244          893600.580534          296811.662984   \n",
       "1               222554.882115          899819.189254          296878.115459   \n",
       "2              -114026.034526         -215507.753418          -58240.794133   \n",
       "3               232052.538819          886792.249240          309302.450961   \n",
       "4              -114079.976276         -215668.219754          -58255.708667   \n",
       "...                       ...                    ...                    ...   \n",
       "286091         -113698.699726         -192210.876425          -27627.809010   \n",
       "286092          -53678.418683         -166703.000669           86349.888528   \n",
       "286093         -123110.822316         -199889.066997          -49392.633591   \n",
       "286094         -122251.188352         -196639.141355          -48533.724648   \n",
       "286095         -118019.196569         -193449.359416          -33041.876060   \n",
       "\n",
       "        Principal component 7   label  \n",
       "0                 5982.345935  BENIGN  \n",
       "1                 5811.504529  BENIGN  \n",
       "2               -37522.217603  BENIGN  \n",
       "3                 6391.775131  BENIGN  \n",
       "4               -37616.209415  BENIGN  \n",
       "...                       ...     ...  \n",
       "286091          -36484.272722  BENIGN  \n",
       "286092          -14930.171400  BENIGN  \n",
       "286093          -42680.484006  BENIGN  \n",
       "286094          -39650.304436  BENIGN  \n",
       "286095          -36870.608685  BENIGN  \n",
       "\n",
       "[286096 rows x 8 columns]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_final = pd.concat([df_pc, df_labels], axis = 1)\n",
    "# Scroll to the RHS end of dataframe to see attached label feature\n",
    "df_final"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Transforming the label feature's categorical data into numeric data (via LabelBinarizer)\n",
    "\n",
    "Again, a model can't understand, for example, 'yes' and 'no' strings but... these can be mapped to a 1 for yes and a 0 for no. Then a model can understand, as it requires numeric input to distinguish the feature's domain of values.\n",
    "\n",
    "The **sklearn.preprocessing.LabelBinarizer** can be used to convert the column data into binary numbers, which will then be correctly interpreted.\n",
    "\n",
    "1. Fit the List- this tells the LabelBinarizer what values exist, and how to map them. \n",
    "\n",
    "2. Call transform, passing a List, and this will return the encoded List.\n",
    "\n",
    "**(Note: if label column has more than 2 unique labels, pandas.get_dummies is required instead)**\n",
    "\n",
    "(Code reference: https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelBinarizer.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Principal component 1</th>\n",
       "      <th>Principal component 2</th>\n",
       "      <th>Principal component 3</th>\n",
       "      <th>Principal component 4</th>\n",
       "      <th>Principal component 5</th>\n",
       "      <th>Principal component 6</th>\n",
       "      <th>Principal component 7</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-8.165803e+06</td>\n",
       "      <td>-1.199153e+06</td>\n",
       "      <td>127263.307756</td>\n",
       "      <td>231525.444244</td>\n",
       "      <td>893600.580534</td>\n",
       "      <td>296811.662984</td>\n",
       "      <td>5982.345935</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-8.085906e+06</td>\n",
       "      <td>-1.198613e+06</td>\n",
       "      <td>92173.621578</td>\n",
       "      <td>222554.882115</td>\n",
       "      <td>899819.189254</td>\n",
       "      <td>296878.115459</td>\n",
       "      <td>5811.504529</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.001949e+07</td>\n",
       "      <td>-1.226292e+06</td>\n",
       "      <td>202487.219507</td>\n",
       "      <td>-114026.034526</td>\n",
       "      <td>-215507.753418</td>\n",
       "      <td>-58240.794133</td>\n",
       "      <td>-37522.217603</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-8.104574e+06</td>\n",
       "      <td>-1.198907e+06</td>\n",
       "      <td>114579.819424</td>\n",
       "      <td>232052.538819</td>\n",
       "      <td>886792.249240</td>\n",
       "      <td>309302.450961</td>\n",
       "      <td>6391.775131</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1.001953e+07</td>\n",
       "      <td>-1.226232e+06</td>\n",
       "      <td>202496.514118</td>\n",
       "      <td>-114079.976276</td>\n",
       "      <td>-215668.219754</td>\n",
       "      <td>-58255.708667</td>\n",
       "      <td>-37616.209415</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286091</th>\n",
       "      <td>-9.702691e+06</td>\n",
       "      <td>-6.754558e+05</td>\n",
       "      <td>108811.962532</td>\n",
       "      <td>-113698.699726</td>\n",
       "      <td>-192210.876425</td>\n",
       "      <td>-27627.809010</td>\n",
       "      <td>-36484.272722</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286092</th>\n",
       "      <td>-9.338204e+06</td>\n",
       "      <td>-9.387585e+05</td>\n",
       "      <td>107612.275294</td>\n",
       "      <td>-53678.418683</td>\n",
       "      <td>-166703.000669</td>\n",
       "      <td>86349.888528</td>\n",
       "      <td>-14930.171400</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286093</th>\n",
       "      <td>-9.778811e+06</td>\n",
       "      <td>1.207114e+05</td>\n",
       "      <td>108402.286219</td>\n",
       "      <td>-123110.822316</td>\n",
       "      <td>-199889.066997</td>\n",
       "      <td>-49392.633591</td>\n",
       "      <td>-42680.484006</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286094</th>\n",
       "      <td>-9.803881e+06</td>\n",
       "      <td>-4.425485e+05</td>\n",
       "      <td>121580.327254</td>\n",
       "      <td>-122251.188352</td>\n",
       "      <td>-196639.141355</td>\n",
       "      <td>-48533.724648</td>\n",
       "      <td>-39650.304436</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286095</th>\n",
       "      <td>-9.721752e+06</td>\n",
       "      <td>-6.799556e+05</td>\n",
       "      <td>108244.069483</td>\n",
       "      <td>-118019.196569</td>\n",
       "      <td>-193449.359416</td>\n",
       "      <td>-33041.876060</td>\n",
       "      <td>-36870.608685</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>286096 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Principal component 1  Principal component 2  Principal component 3  \\\n",
       "0               -8.165803e+06          -1.199153e+06          127263.307756   \n",
       "1               -8.085906e+06          -1.198613e+06           92173.621578   \n",
       "2               -1.001949e+07          -1.226292e+06          202487.219507   \n",
       "3               -8.104574e+06          -1.198907e+06          114579.819424   \n",
       "4               -1.001953e+07          -1.226232e+06          202496.514118   \n",
       "...                       ...                    ...                    ...   \n",
       "286091          -9.702691e+06          -6.754558e+05          108811.962532   \n",
       "286092          -9.338204e+06          -9.387585e+05          107612.275294   \n",
       "286093          -9.778811e+06           1.207114e+05          108402.286219   \n",
       "286094          -9.803881e+06          -4.425485e+05          121580.327254   \n",
       "286095          -9.721752e+06          -6.799556e+05          108244.069483   \n",
       "\n",
       "        Principal component 4  Principal component 5  Principal component 6  \\\n",
       "0               231525.444244          893600.580534          296811.662984   \n",
       "1               222554.882115          899819.189254          296878.115459   \n",
       "2              -114026.034526         -215507.753418          -58240.794133   \n",
       "3               232052.538819          886792.249240          309302.450961   \n",
       "4              -114079.976276         -215668.219754          -58255.708667   \n",
       "...                       ...                    ...                    ...   \n",
       "286091         -113698.699726         -192210.876425          -27627.809010   \n",
       "286092          -53678.418683         -166703.000669           86349.888528   \n",
       "286093         -123110.822316         -199889.066997          -49392.633591   \n",
       "286094         -122251.188352         -196639.141355          -48533.724648   \n",
       "286095         -118019.196569         -193449.359416          -33041.876060   \n",
       "\n",
       "        Principal component 7  label  \n",
       "0                 5982.345935      0  \n",
       "1                 5811.504529      0  \n",
       "2               -37522.217603      0  \n",
       "3                 6391.775131      0  \n",
       "4               -37616.209415      0  \n",
       "...                       ...    ...  \n",
       "286091          -36484.272722      0  \n",
       "286092          -14930.171400      0  \n",
       "286093          -42680.484006      0  \n",
       "286094          -39650.304436      0  \n",
       "286095          -36870.608685      0  \n",
       "\n",
       "[286096 rows x 8 columns]"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lb = LabelBinarizer()\n",
    "df_final['label'] = lb.fit_transform(df_final['label'])\n",
    "df_final"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Showing the transformation. **Again, to note, if label isn't binary then pd.get_dummies is required.**\n",
    "\n",
    "See pandas get_dummies docs here for more information: https://pandas.pydata.org/docs/reference/api/pandas.get_dummies.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Before LabelBinarizer:  ['BENIGN' 'PortScan']\n",
      "After LabelBinarizer:  [0 1]\n"
     ]
    }
   ],
   "source": [
    "print(\"Before LabelBinarizer: \", df_labels.unique())\n",
    "print(\"After LabelBinarizer: \", df_final['label'].unique())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### The data is now fully cleaned and transformed, ready for pre-modeling test_train data splitting\n",
    "\n",
    "## K-Fold Cross Validation and Stratified splitting\n",
    "K-Fold is a technique which splits data into K folds (splits). Train of a model K times, and for each training iteration, K-Fold selects a different fold to use for testing; the remaining K - 1 folds become the training data. Typically, the optimal K value can be derived using the size of your dataset (num of rows). Ideally, each fold should be statistically representative of the population. Too small and it won't be useful. Too large, and you lose the positives from doing K-Fold.\n",
    "\n",
    "You can use Stratified splitting with K-Fold, which ensures balance between some criteria (balances out the classes) e.g. equal portion of label classes in each fold.\n",
    "\n",
    "Class Imbalance is a significant issue in the ML/ Data Mining domain. It leads to incorrect results e.g. if one fold had all of 1 label (accidentally), then it would produce terrible predictive results as it wouldn't know what the other label class data point would look like. You can only work with the data you have, so this has to be dealt with.\n",
    "\n",
    "Benefits of K-Fold:\n",
    "- Use more of the data towards making a succesful model.\n",
    "- Obtain K models to evaluate, can improve the confidence that you have selected an appropriate model algorithm and cleaned/ prepared the data correctly, e.g. normal split with 1 model, one doesn't know if it's good or not- it could be heavily biased. Multiple models ensures less bias and increased variance.\n",
    "- Looking at the accuracy results from each of the k-Folds, you can identify data issues e.g. a certain fold performs really badly. Could this suggest that more cleaning is required? Maybe the data preparation was performed incorrectly?\n",
    "- If all folds return similar accuracies, one can be more confident that a deployed model will perform similarly to how one expects.\n",
    "\n",
    "Issues with K-Fold:\n",
    "- Creating K separate models requires more computation.\n",
    "- If you haven't got much data, you might not get many folds. Less folds means K-Fold loses its benefits.\n",
    "- If K is very large, each fold is small, and harder to ensure statistical distribution of.\n",
    "- Choosing the best of K models introduces bias. Real world data could perform better under a more general, lower performing model.\n",
    "\n",
    "Code reference: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedKFold.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0         0\n",
       "1         0\n",
       "2         0\n",
       "3         0\n",
       "4         0\n",
       "         ..\n",
       "286091    0\n",
       "286092    0\n",
       "286093    0\n",
       "286094    0\n",
       "286095    0\n",
       "Name: label, Length: 286096, dtype: int64"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Separating the label so that the answers aren't provided to the model, in training.\n",
    "X = df_final.drop(['label'], axis = 1)\n",
    "y = df_final['label']\n",
    "y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Initialising the StratifiedKFold model (https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedKFold.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "StratifiedKFold(n_splits=10, random_state=None, shuffle=False)"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "skf = StratifiedKFold(n_splits=num_of_splits_for_skf, shuffle=False)\n",
    "skf"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, splitting the data into train and test data, using the optimal splitting techniques of K-Fold and Stratified Splitting.\n",
    "\n",
    "Code reference: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedKFold.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "X_train length:  257487\n",
      "y_train length:  257487\n",
      "X_test length:  28609\n",
      "y_test length:  28609\n"
     ]
    }
   ],
   "source": [
    "for train_index, test_index in skf.split(X, y):\n",
    "    X_train, X_test = X.iloc[train_index], X.iloc[test_index]\n",
    "    y_train, y_test = y.iloc[train_index], y.iloc[test_index]\n",
    "\n",
    "    reshaped_y_train = np.asarray(y_train).reshape(-1, 1)\n",
    "    reshaped_y_test = np.asarray(y_test).reshape(-1, 1)\n",
    "    \n",
    "print( 'X_train length: ', len(X_train) ) # To check if splits worked\n",
    "print( 'y_train length: ', len(y_train) )\n",
    "print( 'X_test length: ', len(X_test) )\n",
    "print( 'y_test length: ', len(y_test) )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Modeling stage\n",
    "Data is now fully transformed and ready for ML model training and predictions.\n",
    "\n",
    "See CRISP-DM for more information. Following industry-standard Data Science/ ML practises.\n",
    "\n",
    "See: https://www.datascience-pm.com/crisp-dm-2/"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### K-Nearest neighbor ML classifier\n",
    "The KNN algorithm assumes that similar things exist in close proximity. In other words, similar things are assumed to be near to each other.\n",
    "\n",
    "The most important factor in training a KNN model is the **number of neighbors hyperparameter**. You want to choose the K  value that reduces the number of errors, while maintaining the algorithm’s ability to accurately make predictions when it’s given data it hasn’t seen before. Here are some important considerations:\n",
    "\n",
    "- As you decrease the value of K to **1**, predictions become less stable e.g. imagine K=1 and you have a query point surrounded by several red 'dots' and one green 'dot', but the green dot is the single nearest neighbor. Reasonably, you would think the query point is most likely red, but because K=1, KNN incorrectly predicts that the query point is green.\n",
    "\n",
    "- Inversely, as you increase the value of K, predictions become more stable due to majority voting/ averaging, and thus, more likely to make more accurate predictions (up to a certain critical point- an **'overfitting' threshold**). Eventually, you would begin to witness an increasing number of errors. It is at this point you'd know that you have pushed the value of K too far.\n",
    "\n",
    "- In cases where you are taking a majority vote (e.g. picking the mode in a classification problem) amongst labels/ classes, you usually make K an odd number to have a tiebreaker.\n",
    "\n",
    "The sklearn's default k value is 5 (also true for MATLAB's implementation).\n",
    "\n",
    "References: https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html & https://towardsdatascience.com/machine-learning-basics-with-the-k-nearest-neighbors-algorithm-6a6e71d01761"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "knn_model = KNeighborsClassifier(n_neighbors=5, weights='uniform',\n",
    "                                    algorithm='auto', leaf_size=30,\n",
    "                                    p=2, metric='minkowski',\n",
    "                                    metric_params=None, n_jobs=None)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Training the model and predicting test data results (confusion matrix)\n",
    "The selected Machine Learning classifier/ model/ models can now be trained on training data (from the StratifiedKFold splitting). Once the model is trained, it can be used to predict the test data's labels (based upon what it has seen before).\n",
    "\n",
    "The performance of the model can be seen below in the Classification Report, Confusion Matrix, and the model's predicitive accuracy result.\n",
    "\n",
    "(see **methods** section, at the top of the notebook, for the train_model_predict() method code. Note that it can take a few minutes to run due to the vast amount of data used, and the training time required for the model to learn)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification report: \n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00     12729\n",
      "           1       1.00      1.00      1.00     15880\n",
      "\n",
      "    accuracy                           1.00     28609\n",
      "   macro avg       1.00      1.00      1.00     28609\n",
      "weighted avg       1.00      1.00      1.00     28609\n",
      " \n",
      "\n",
      "Model accuracy=  99.65395504911042 %\n",
      "\n",
      "Dataset labels:  ['BENIGN' 'PortScan']\n",
      "Dataset numeric labels after encoding for model:  [0 1]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Unpacking the method return values. Last 4 are needed for statistical distance measure methods.\n",
    "accuracy, X_train, X_test, y_train, pred_y = train_model_predict(knn_model, \"K-Nearest Neighbor\", X, y, skf)\n",
    "print(\"Model accuracy= \", accuracy*100, \"%\\n\")\n",
    "print(\"Dataset labels: \", df_labels.unique())\n",
    "print(\"Dataset numeric labels after encoding for model: \", df_final['label'].unique())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The SafeML statistical distance measures: test/ example run\n",
    "Now the ML models have been run, and the accuracy is found (along with other useful performance metrics), a test run of using the SafeML statistical distance measures can be run. This is a test run, and the real run will be done later. This test run is a guided 'tour' around how to set-up the code, in Python and SciKit-Learn, so that results can be re-produced easily for future case-studies or projects."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of classes:  2\n",
      "Labels:  [0 1]\n"
     ]
    }
   ],
   "source": [
    "# Extracting the number of classes and labels from the label feature\n",
    "class_num = len(df_final['label'].unique())\n",
    "labels = df_final['label'].unique()\n",
    "print(\"Number of classes: \", class_num)\n",
    "print(\"Labels: \", labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Principal component 1</th>\n",
       "      <th>Principal component 2</th>\n",
       "      <th>Principal component 3</th>\n",
       "      <th>Principal component 4</th>\n",
       "      <th>Principal component 5</th>\n",
       "      <th>Principal component 6</th>\n",
       "      <th>Principal component 7</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-8.165803e+06</td>\n",
       "      <td>-1.199153e+06</td>\n",
       "      <td>1.272633e+05</td>\n",
       "      <td>2.315254e+05</td>\n",
       "      <td>893600.580534</td>\n",
       "      <td>2.968117e+05</td>\n",
       "      <td>5.982346e+03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-8.085906e+06</td>\n",
       "      <td>-1.198613e+06</td>\n",
       "      <td>9.217362e+04</td>\n",
       "      <td>2.225549e+05</td>\n",
       "      <td>899819.189254</td>\n",
       "      <td>2.968781e+05</td>\n",
       "      <td>5.811505e+03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.001949e+07</td>\n",
       "      <td>-1.226292e+06</td>\n",
       "      <td>2.024872e+05</td>\n",
       "      <td>-1.140260e+05</td>\n",
       "      <td>-215507.753418</td>\n",
       "      <td>-5.824079e+04</td>\n",
       "      <td>-3.752222e+04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-8.104574e+06</td>\n",
       "      <td>-1.198907e+06</td>\n",
       "      <td>1.145798e+05</td>\n",
       "      <td>2.320525e+05</td>\n",
       "      <td>886792.249240</td>\n",
       "      <td>3.093025e+05</td>\n",
       "      <td>6.391775e+03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1.001953e+07</td>\n",
       "      <td>-1.226232e+06</td>\n",
       "      <td>2.024965e+05</td>\n",
       "      <td>-1.140800e+05</td>\n",
       "      <td>-215668.219754</td>\n",
       "      <td>-5.825571e+04</td>\n",
       "      <td>-3.761621e+04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>264345</th>\n",
       "      <td>2.198678e+08</td>\n",
       "      <td>1.380216e+06</td>\n",
       "      <td>1.701027e+08</td>\n",
       "      <td>-5.037324e+07</td>\n",
       "      <td>351189.985288</td>\n",
       "      <td>-3.080752e+06</td>\n",
       "      <td>2.176100e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>264346</th>\n",
       "      <td>-9.906154e+06</td>\n",
       "      <td>-1.223417e+06</td>\n",
       "      <td>2.222463e+05</td>\n",
       "      <td>-1.001826e+05</td>\n",
       "      <td>-118844.252902</td>\n",
       "      <td>-2.512903e+04</td>\n",
       "      <td>-1.045444e+02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>264347</th>\n",
       "      <td>-9.974813e+06</td>\n",
       "      <td>-1.223502e+06</td>\n",
       "      <td>2.102830e+05</td>\n",
       "      <td>-1.085742e+05</td>\n",
       "      <td>-177375.336509</td>\n",
       "      <td>-4.516016e+04</td>\n",
       "      <td>-2.274868e+04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>264348</th>\n",
       "      <td>-9.991084e+06</td>\n",
       "      <td>-1.218311e+06</td>\n",
       "      <td>2.086187e+05</td>\n",
       "      <td>-1.100024e+05</td>\n",
       "      <td>-191929.370539</td>\n",
       "      <td>-4.893430e+04</td>\n",
       "      <td>-3.011515e+04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>264349</th>\n",
       "      <td>2.193285e+08</td>\n",
       "      <td>1.374161e+06</td>\n",
       "      <td>1.698228e+08</td>\n",
       "      <td>-5.016749e+07</td>\n",
       "      <td>334795.886723</td>\n",
       "      <td>-3.130547e+06</td>\n",
       "      <td>2.172841e+06</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>257487 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Principal component 1  Principal component 2  Principal component 3  \\\n",
       "0               -8.165803e+06          -1.199153e+06           1.272633e+05   \n",
       "1               -8.085906e+06          -1.198613e+06           9.217362e+04   \n",
       "2               -1.001949e+07          -1.226292e+06           2.024872e+05   \n",
       "3               -8.104574e+06          -1.198907e+06           1.145798e+05   \n",
       "4               -1.001953e+07          -1.226232e+06           2.024965e+05   \n",
       "...                       ...                    ...                    ...   \n",
       "264345           2.198678e+08           1.380216e+06           1.701027e+08   \n",
       "264346          -9.906154e+06          -1.223417e+06           2.222463e+05   \n",
       "264347          -9.974813e+06          -1.223502e+06           2.102830e+05   \n",
       "264348          -9.991084e+06          -1.218311e+06           2.086187e+05   \n",
       "264349           2.193285e+08           1.374161e+06           1.698228e+08   \n",
       "\n",
       "        Principal component 4  Principal component 5  Principal component 6  \\\n",
       "0                2.315254e+05          893600.580534           2.968117e+05   \n",
       "1                2.225549e+05          899819.189254           2.968781e+05   \n",
       "2               -1.140260e+05         -215507.753418          -5.824079e+04   \n",
       "3                2.320525e+05          886792.249240           3.093025e+05   \n",
       "4               -1.140800e+05         -215668.219754          -5.825571e+04   \n",
       "...                       ...                    ...                    ...   \n",
       "264345          -5.037324e+07          351189.985288          -3.080752e+06   \n",
       "264346          -1.001826e+05         -118844.252902          -2.512903e+04   \n",
       "264347          -1.085742e+05         -177375.336509          -4.516016e+04   \n",
       "264348          -1.100024e+05         -191929.370539          -4.893430e+04   \n",
       "264349          -5.016749e+07          334795.886723          -3.130547e+06   \n",
       "\n",
       "        Principal component 7  \n",
       "0                5.982346e+03  \n",
       "1                5.811505e+03  \n",
       "2               -3.752222e+04  \n",
       "3                6.391775e+03  \n",
       "4               -3.761621e+04  \n",
       "...                       ...  \n",
       "264345           2.176100e+06  \n",
       "264346          -1.045444e+02  \n",
       "264347          -2.274868e+04  \n",
       "264348          -3.011515e+04  \n",
       "264349           2.172841e+06  \n",
       "\n",
       "[257487 rows x 7 columns]"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Pre-finished code using just the first label in the labels array. Selects all the relevant rows/ data points. \n",
    "\n",
    "- **.loc[]** method can be used to locate certain rows based upon the query passed into the square brackets[]."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Principal component 1</th>\n",
       "      <th>Principal component 2</th>\n",
       "      <th>Principal component 3</th>\n",
       "      <th>Principal component 4</th>\n",
       "      <th>Principal component 5</th>\n",
       "      <th>Principal component 6</th>\n",
       "      <th>Principal component 7</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-8.165803e+06</td>\n",
       "      <td>-1.199153e+06</td>\n",
       "      <td>1.272633e+05</td>\n",
       "      <td>2.315254e+05</td>\n",
       "      <td>893600.580534</td>\n",
       "      <td>2.968117e+05</td>\n",
       "      <td>5.982346e+03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-8.085906e+06</td>\n",
       "      <td>-1.198613e+06</td>\n",
       "      <td>9.217362e+04</td>\n",
       "      <td>2.225549e+05</td>\n",
       "      <td>899819.189254</td>\n",
       "      <td>2.968781e+05</td>\n",
       "      <td>5.811505e+03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.001949e+07</td>\n",
       "      <td>-1.226292e+06</td>\n",
       "      <td>2.024872e+05</td>\n",
       "      <td>-1.140260e+05</td>\n",
       "      <td>-215507.753418</td>\n",
       "      <td>-5.824079e+04</td>\n",
       "      <td>-3.752222e+04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-8.104574e+06</td>\n",
       "      <td>-1.198907e+06</td>\n",
       "      <td>1.145798e+05</td>\n",
       "      <td>2.320525e+05</td>\n",
       "      <td>886792.249240</td>\n",
       "      <td>3.093025e+05</td>\n",
       "      <td>6.391775e+03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1.001953e+07</td>\n",
       "      <td>-1.226232e+06</td>\n",
       "      <td>2.024965e+05</td>\n",
       "      <td>-1.140800e+05</td>\n",
       "      <td>-215668.219754</td>\n",
       "      <td>-5.825571e+04</td>\n",
       "      <td>-3.761621e+04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>264345</th>\n",
       "      <td>2.198678e+08</td>\n",
       "      <td>1.380216e+06</td>\n",
       "      <td>1.701027e+08</td>\n",
       "      <td>-5.037324e+07</td>\n",
       "      <td>351189.985288</td>\n",
       "      <td>-3.080752e+06</td>\n",
       "      <td>2.176100e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>264346</th>\n",
       "      <td>-9.906154e+06</td>\n",
       "      <td>-1.223417e+06</td>\n",
       "      <td>2.222463e+05</td>\n",
       "      <td>-1.001826e+05</td>\n",
       "      <td>-118844.252902</td>\n",
       "      <td>-2.512903e+04</td>\n",
       "      <td>-1.045444e+02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>264347</th>\n",
       "      <td>-9.974813e+06</td>\n",
       "      <td>-1.223502e+06</td>\n",
       "      <td>2.102830e+05</td>\n",
       "      <td>-1.085742e+05</td>\n",
       "      <td>-177375.336509</td>\n",
       "      <td>-4.516016e+04</td>\n",
       "      <td>-2.274868e+04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>264348</th>\n",
       "      <td>-9.991084e+06</td>\n",
       "      <td>-1.218311e+06</td>\n",
       "      <td>2.086187e+05</td>\n",
       "      <td>-1.100024e+05</td>\n",
       "      <td>-191929.370539</td>\n",
       "      <td>-4.893430e+04</td>\n",
       "      <td>-3.011515e+04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>264349</th>\n",
       "      <td>2.193285e+08</td>\n",
       "      <td>1.374161e+06</td>\n",
       "      <td>1.698228e+08</td>\n",
       "      <td>-5.016749e+07</td>\n",
       "      <td>334795.886723</td>\n",
       "      <td>-3.130547e+06</td>\n",
       "      <td>2.172841e+06</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>114563 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Principal component 1  Principal component 2  Principal component 3  \\\n",
       "0               -8.165803e+06          -1.199153e+06           1.272633e+05   \n",
       "1               -8.085906e+06          -1.198613e+06           9.217362e+04   \n",
       "2               -1.001949e+07          -1.226292e+06           2.024872e+05   \n",
       "3               -8.104574e+06          -1.198907e+06           1.145798e+05   \n",
       "4               -1.001953e+07          -1.226232e+06           2.024965e+05   \n",
       "...                       ...                    ...                    ...   \n",
       "264345           2.198678e+08           1.380216e+06           1.701027e+08   \n",
       "264346          -9.906154e+06          -1.223417e+06           2.222463e+05   \n",
       "264347          -9.974813e+06          -1.223502e+06           2.102830e+05   \n",
       "264348          -9.991084e+06          -1.218311e+06           2.086187e+05   \n",
       "264349           2.193285e+08           1.374161e+06           1.698228e+08   \n",
       "\n",
       "        Principal component 4  Principal component 5  Principal component 6  \\\n",
       "0                2.315254e+05          893600.580534           2.968117e+05   \n",
       "1                2.225549e+05          899819.189254           2.968781e+05   \n",
       "2               -1.140260e+05         -215507.753418          -5.824079e+04   \n",
       "3                2.320525e+05          886792.249240           3.093025e+05   \n",
       "4               -1.140800e+05         -215668.219754          -5.825571e+04   \n",
       "...                       ...                    ...                    ...   \n",
       "264345          -5.037324e+07          351189.985288          -3.080752e+06   \n",
       "264346          -1.001826e+05         -118844.252902          -2.512903e+04   \n",
       "264347          -1.085742e+05         -177375.336509          -4.516016e+04   \n",
       "264348          -1.100024e+05         -191929.370539          -4.893430e+04   \n",
       "264349          -5.016749e+07          334795.886723          -3.130547e+06   \n",
       "\n",
       "        Principal component 7  \n",
       "0                5.982346e+03  \n",
       "1                5.811505e+03  \n",
       "2               -3.752222e+04  \n",
       "3                6.391775e+03  \n",
       "4               -3.761621e+04  \n",
       "...                       ...  \n",
       "264345           2.176100e+06  \n",
       "264346          -1.045444e+02  \n",
       "264347          -2.274868e+04  \n",
       "264348          -3.011515e+04  \n",
       "264349           2.172841e+06  \n",
       "\n",
       "[114563 rows x 7 columns]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# x1 = X_test[np.where(np.asarray(y_train).reshape(-1, 1).ravel() == labels[0])]\n",
    "# X_train_L = X_train.iloc[np.where(y_train[:,1] == 1)]\n",
    "X_train_L = X_train.loc[y_train == labels[0]]\n",
    "X_train_L"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Pre-finished code using just the first label in the labels array. Selects all the relevant rows/ data points based upon the query placed inside the square brackets."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Principal component 1</th>\n",
       "      <th>Principal component 2</th>\n",
       "      <th>Principal component 3</th>\n",
       "      <th>Principal component 4</th>\n",
       "      <th>Principal component 5</th>\n",
       "      <th>Principal component 6</th>\n",
       "      <th>Principal component 7</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>247042</th>\n",
       "      <td>-1.003719e+07</td>\n",
       "      <td>3.746366e+05</td>\n",
       "      <td>201535.291293</td>\n",
       "      <td>-113791.182822</td>\n",
       "      <td>-215671.736504</td>\n",
       "      <td>-58453.724072</td>\n",
       "      <td>-37876.926666</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>247162</th>\n",
       "      <td>-9.474344e+06</td>\n",
       "      <td>-1.171362e+06</td>\n",
       "      <td>290499.044682</td>\n",
       "      <td>-24916.077897</td>\n",
       "      <td>-159436.069748</td>\n",
       "      <td>202752.848791</td>\n",
       "      <td>89131.592084</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>247164</th>\n",
       "      <td>-1.007432e+07</td>\n",
       "      <td>4.610053e+06</td>\n",
       "      <td>193101.984439</td>\n",
       "      <td>-101728.148800</td>\n",
       "      <td>-209863.707542</td>\n",
       "      <td>-74877.503832</td>\n",
       "      <td>-47190.555650</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>248237</th>\n",
       "      <td>-9.271826e+06</td>\n",
       "      <td>-1.181135e+06</td>\n",
       "      <td>323589.702362</td>\n",
       "      <td>8387.451593</td>\n",
       "      <td>-138267.409296</td>\n",
       "      <td>300314.086017</td>\n",
       "      <td>136380.325307</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>248241</th>\n",
       "      <td>-1.007971e+07</td>\n",
       "      <td>4.969413e+06</td>\n",
       "      <td>194145.860996</td>\n",
       "      <td>-104411.735824</td>\n",
       "      <td>-210512.019112</td>\n",
       "      <td>-70642.129348</td>\n",
       "      <td>-44726.982493</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286091</th>\n",
       "      <td>-9.702691e+06</td>\n",
       "      <td>-6.754558e+05</td>\n",
       "      <td>108811.962532</td>\n",
       "      <td>-113698.699726</td>\n",
       "      <td>-192210.876425</td>\n",
       "      <td>-27627.809010</td>\n",
       "      <td>-36484.272722</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286092</th>\n",
       "      <td>-9.338204e+06</td>\n",
       "      <td>-9.387585e+05</td>\n",
       "      <td>107612.275294</td>\n",
       "      <td>-53678.418683</td>\n",
       "      <td>-166703.000669</td>\n",
       "      <td>86349.888528</td>\n",
       "      <td>-14930.171400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286093</th>\n",
       "      <td>-9.778811e+06</td>\n",
       "      <td>1.207114e+05</td>\n",
       "      <td>108402.286219</td>\n",
       "      <td>-123110.822316</td>\n",
       "      <td>-199889.066997</td>\n",
       "      <td>-49392.633591</td>\n",
       "      <td>-42680.484006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286094</th>\n",
       "      <td>-9.803881e+06</td>\n",
       "      <td>-4.425485e+05</td>\n",
       "      <td>121580.327254</td>\n",
       "      <td>-122251.188352</td>\n",
       "      <td>-196639.141355</td>\n",
       "      <td>-48533.724648</td>\n",
       "      <td>-39650.304436</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286095</th>\n",
       "      <td>-9.721752e+06</td>\n",
       "      <td>-6.799556e+05</td>\n",
       "      <td>108244.069483</td>\n",
       "      <td>-118019.196569</td>\n",
       "      <td>-193449.359416</td>\n",
       "      <td>-33041.876060</td>\n",
       "      <td>-36870.608685</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>12724 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Principal component 1  Principal component 2  Principal component 3  \\\n",
       "247042          -1.003719e+07           3.746366e+05          201535.291293   \n",
       "247162          -9.474344e+06          -1.171362e+06          290499.044682   \n",
       "247164          -1.007432e+07           4.610053e+06          193101.984439   \n",
       "248237          -9.271826e+06          -1.181135e+06          323589.702362   \n",
       "248241          -1.007971e+07           4.969413e+06          194145.860996   \n",
       "...                       ...                    ...                    ...   \n",
       "286091          -9.702691e+06          -6.754558e+05          108811.962532   \n",
       "286092          -9.338204e+06          -9.387585e+05          107612.275294   \n",
       "286093          -9.778811e+06           1.207114e+05          108402.286219   \n",
       "286094          -9.803881e+06          -4.425485e+05          121580.327254   \n",
       "286095          -9.721752e+06          -6.799556e+05          108244.069483   \n",
       "\n",
       "        Principal component 4  Principal component 5  Principal component 6  \\\n",
       "247042         -113791.182822         -215671.736504          -58453.724072   \n",
       "247162          -24916.077897         -159436.069748          202752.848791   \n",
       "247164         -101728.148800         -209863.707542          -74877.503832   \n",
       "248237            8387.451593         -138267.409296          300314.086017   \n",
       "248241         -104411.735824         -210512.019112          -70642.129348   \n",
       "...                       ...                    ...                    ...   \n",
       "286091         -113698.699726         -192210.876425          -27627.809010   \n",
       "286092          -53678.418683         -166703.000669           86349.888528   \n",
       "286093         -123110.822316         -199889.066997          -49392.633591   \n",
       "286094         -122251.188352         -196639.141355          -48533.724648   \n",
       "286095         -118019.196569         -193449.359416          -33041.876060   \n",
       "\n",
       "        Principal component 7  \n",
       "247042          -37876.926666  \n",
       "247162           89131.592084  \n",
       "247164          -47190.555650  \n",
       "248237          136380.325307  \n",
       "248241          -44726.982493  \n",
       "...                       ...  \n",
       "286091          -36484.272722  \n",
       "286092          -14930.171400  \n",
       "286093          -42680.484006  \n",
       "286094          -39650.304436  \n",
       "286095          -36870.608685  \n",
       "\n",
       "[12724 rows x 7 columns]"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test_L = X_test.loc[pred_y == labels[0]]\n",
    "X_test_L"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Running the Statistical distance measure algorithms\n",
    "This is just a preliminary run to show an example of how to use the methods."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "num_of_features = len(X_train_L.columns)\n",
    "num_of_features"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Running the statistical measure (univariate version) methods from the local Python modules defined in the project folder.\n",
    "\n",
    "Because the Python methods are slightly different to the current MATLAB versions **(as of 8th March 2021)**, one has to pass in a feature 1 at a time (univariate). Then, after all the features have been passed in and sent back, this means the full dataset has been used to calculate the various ECDF-based statistical distance measures. This is what is displayed in the plotting of results section below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " Cramer Von Mises distances:  [2145.09062898 3554.18538115 2795.2436322  1583.62379235 1961.45443754\n",
      " 4157.49306459 3448.61466525]\n",
      "\n",
      " Anderson Darling distances:  [15.67865018 23.73500686 18.74131197 11.34771928 12.67932826 26.91382278\n",
      " 22.30160905]\n",
      "\n",
      " Kolmogorov Smirnov distances:  [0.03326813 0.06777357 0.04982426 0.03216095 0.03921818 0.06471298\n",
      " 0.06118417]\n",
      "\n",
      " Kuiper distances:  [0.03328559 0.01342934 0.04984172 0.03217841 0.03923564 0.06473044\n",
      " 0.06125403]\n",
      "\n",
      " Wasserstein distances:  [3632561.56936991  697564.99629972 1409309.94123756  503034.05463808\n",
      "  196335.98494874  142255.88702355  100757.23898965]\n",
      "\n",
      " DTS distances:  [39541.56024532 41304.46940677 28045.40926569 12410.22839265\n",
      " 10182.44208158  8299.55955336  8538.95643399]\n"
     ]
    }
   ],
   "source": [
    "CVM_distances = np.zeros(num_of_features)\n",
    "Anderson_Darling_distances = np.zeros(num_of_features)\n",
    "Kolmogorov_Smirnov_distances = np.zeros(num_of_features)\n",
    "Kuiper_distances = np.zeros(num_of_features)\n",
    "Wasserstein_distances = np.zeros(num_of_features)\n",
    "DTS_distances = np.zeros(num_of_features)\n",
    "\n",
    "for i in range(0, num_of_features):\n",
    "    # iloc[:, i] allows selection of the ith feature in the Pandas dataframe \n",
    "    CVM_distances[i] = Cramer_Von_Mises_Dist(X_train_L.iloc[:, i], X_test_L.iloc[:, i])\n",
    "    Anderson_Darling_distances[i] = Anderson_Darling_Dist(X_train_L.iloc[:, i], X_test_L.iloc[:, i])\n",
    "    Kolmogorov_Smirnov_distances[i] = Kolmogorov_Smirnov_Dist(X_train_L.iloc[:, i], X_test_L.iloc[:, i])\n",
    "    Kuiper_distances[i] = Kuiper_Dist(X_train_L.iloc[:, i], X_test_L.iloc[:, i])\n",
    "    Wasserstein_distances[i] = Wasserstein_Dist(X_train_L.iloc[:, i], X_test_L.iloc[:, i])\n",
    "    DTS_distances[i] = DTS_Dist(X_train_L.iloc[:, i], X_test_L.iloc[:, i])\n",
    "    \n",
    "print(\" Cramer Von Mises distances: \", CVM_distances)\n",
    "print(\"\\n Anderson Darling distances: \", Anderson_Darling_distances)\n",
    "print(\"\\n Kolmogorov Smirnov distances: \", Kolmogorov_Smirnov_distances)\n",
    "print(\"\\n Kuiper distances: \", Kuiper_distances)\n",
    "print(\"\\n Wasserstein distances: \", Wasserstein_distances)\n",
    "print(\"\\n DTS distances: \", DTS_distances)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Plotting the test/ example results\n",
    "This shows the varying distances of each statistical distance measure, between **each feature only**, in a single dataset split (1 permutation). Therefore, it is only an example and not representative of the real run (like a CRISP-DM cycle run through, where one can evaluate and re-run after).\n",
    "\n",
    "The real run will plot the distances between all the features (entire dataset) of each dataset split (Permutation) against the average accuracy from all permutations. Thus, showing how statistical distances can be used to estimate the accuracy of models (the SafeML idea)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 6 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axs = plt.subplots(2, 3)\n",
    "\n",
    "axs[0, 0].boxplot(CVM_distances)\n",
    "axs[0, 0].set_title('CVM distances')\n",
    "axs[0, 0].set_ylabel(\"Distance\")\n",
    "\n",
    "axs[0, 1].boxplot(Anderson_Darling_distances)\n",
    "axs[0, 1].set_title('Anderson Darling distances')\n",
    "axs[0, 1].set_ylabel(\"Distance\")\n",
    "\n",
    "axs[0, 2].boxplot(Kolmogorov_Smirnov_distances)\n",
    "axs[0, 2].set_title('Kolmogorov Smirnov distances')\n",
    "axs[0, 2].set_ylabel(\"Distance\")\n",
    "\n",
    "axs[1, 0].boxplot(Kuiper_distances)\n",
    "axs[1, 0].set_title(\"Kuiper distances\")\n",
    "axs[1, 0].set_ylabel(\"Distance\")\n",
    "\n",
    "axs[1, 1].boxplot(Wasserstein_distances)\n",
    "axs[1, 1].set_title(\"Wasserstein distances\")\n",
    "axs[1, 1].set_ylabel(\"Distance\")\n",
    "\n",
    "axs[1, 2].boxplot(DTS_distances)\n",
    "axs[1, 2].set_title(\"DTS distances\")\n",
    "axs[1, 2].set_ylabel(\"Distance\")\n",
    "\n",
    "fig.subplots_adjust(left=0.08, right=1.8, bottom=0.05, top=1.5, hspace=0.5, wspace=0.5)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Starting the real run, using the PCA-transformed dataset\n",
    "The dataset shown below is the PCA-transformed data, with the label/ class feature attached (which has been LabelBinarized, into numbers from class names- so the model can understand).\n",
    "\n",
    "To simulate the SafeML idea, a number of permutations have to be run. Each permutation will have its data split differently, and this results in varying model accuracies (different data => different accuracies). The hope (for the simulation) is that as these accuracies vary between permutations, the statistical difference values vary along with it- in a highly (positive) correlated way. \n",
    "\n",
    "This would show that ECDF-based statistical distance measures can actually be used to predict model performance. The final graphing/ plotting will show these relationships, so the correlation can be easily identified. A case-study for this dataset has been run in MATLAB, but not Python. \n",
    "\n",
    "The aim of this file is to have a Python code case-study for the same dataset, and verify the results to see if they match/ are similar to the MATLAB implementation. \n",
    "\n",
    "If it matches, then this case-study can be confidently merged into the master branch, of the SafeML repository."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Principal component 1</th>\n",
       "      <th>Principal component 2</th>\n",
       "      <th>Principal component 3</th>\n",
       "      <th>Principal component 4</th>\n",
       "      <th>Principal component 5</th>\n",
       "      <th>Principal component 6</th>\n",
       "      <th>Principal component 7</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-8.165803e+06</td>\n",
       "      <td>-1.199153e+06</td>\n",
       "      <td>127263.307756</td>\n",
       "      <td>231525.444244</td>\n",
       "      <td>893600.580534</td>\n",
       "      <td>296811.662984</td>\n",
       "      <td>5982.345935</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-8.085906e+06</td>\n",
       "      <td>-1.198613e+06</td>\n",
       "      <td>92173.621578</td>\n",
       "      <td>222554.882115</td>\n",
       "      <td>899819.189254</td>\n",
       "      <td>296878.115459</td>\n",
       "      <td>5811.504529</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.001949e+07</td>\n",
       "      <td>-1.226292e+06</td>\n",
       "      <td>202487.219507</td>\n",
       "      <td>-114026.034526</td>\n",
       "      <td>-215507.753418</td>\n",
       "      <td>-58240.794133</td>\n",
       "      <td>-37522.217603</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-8.104574e+06</td>\n",
       "      <td>-1.198907e+06</td>\n",
       "      <td>114579.819424</td>\n",
       "      <td>232052.538819</td>\n",
       "      <td>886792.249240</td>\n",
       "      <td>309302.450961</td>\n",
       "      <td>6391.775131</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1.001953e+07</td>\n",
       "      <td>-1.226232e+06</td>\n",
       "      <td>202496.514118</td>\n",
       "      <td>-114079.976276</td>\n",
       "      <td>-215668.219754</td>\n",
       "      <td>-58255.708667</td>\n",
       "      <td>-37616.209415</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286091</th>\n",
       "      <td>-9.702691e+06</td>\n",
       "      <td>-6.754558e+05</td>\n",
       "      <td>108811.962532</td>\n",
       "      <td>-113698.699726</td>\n",
       "      <td>-192210.876425</td>\n",
       "      <td>-27627.809010</td>\n",
       "      <td>-36484.272722</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286092</th>\n",
       "      <td>-9.338204e+06</td>\n",
       "      <td>-9.387585e+05</td>\n",
       "      <td>107612.275294</td>\n",
       "      <td>-53678.418683</td>\n",
       "      <td>-166703.000669</td>\n",
       "      <td>86349.888528</td>\n",
       "      <td>-14930.171400</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286093</th>\n",
       "      <td>-9.778811e+06</td>\n",
       "      <td>1.207114e+05</td>\n",
       "      <td>108402.286219</td>\n",
       "      <td>-123110.822316</td>\n",
       "      <td>-199889.066997</td>\n",
       "      <td>-49392.633591</td>\n",
       "      <td>-42680.484006</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286094</th>\n",
       "      <td>-9.803881e+06</td>\n",
       "      <td>-4.425485e+05</td>\n",
       "      <td>121580.327254</td>\n",
       "      <td>-122251.188352</td>\n",
       "      <td>-196639.141355</td>\n",
       "      <td>-48533.724648</td>\n",
       "      <td>-39650.304436</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>286095</th>\n",
       "      <td>-9.721752e+06</td>\n",
       "      <td>-6.799556e+05</td>\n",
       "      <td>108244.069483</td>\n",
       "      <td>-118019.196569</td>\n",
       "      <td>-193449.359416</td>\n",
       "      <td>-33041.876060</td>\n",
       "      <td>-36870.608685</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>286096 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Principal component 1  Principal component 2  Principal component 3  \\\n",
       "0               -8.165803e+06          -1.199153e+06          127263.307756   \n",
       "1               -8.085906e+06          -1.198613e+06           92173.621578   \n",
       "2               -1.001949e+07          -1.226292e+06          202487.219507   \n",
       "3               -8.104574e+06          -1.198907e+06          114579.819424   \n",
       "4               -1.001953e+07          -1.226232e+06          202496.514118   \n",
       "...                       ...                    ...                    ...   \n",
       "286091          -9.702691e+06          -6.754558e+05          108811.962532   \n",
       "286092          -9.338204e+06          -9.387585e+05          107612.275294   \n",
       "286093          -9.778811e+06           1.207114e+05          108402.286219   \n",
       "286094          -9.803881e+06          -4.425485e+05          121580.327254   \n",
       "286095          -9.721752e+06          -6.799556e+05          108244.069483   \n",
       "\n",
       "        Principal component 4  Principal component 5  Principal component 6  \\\n",
       "0               231525.444244          893600.580534          296811.662984   \n",
       "1               222554.882115          899819.189254          296878.115459   \n",
       "2              -114026.034526         -215507.753418          -58240.794133   \n",
       "3               232052.538819          886792.249240          309302.450961   \n",
       "4              -114079.976276         -215668.219754          -58255.708667   \n",
       "...                       ...                    ...                    ...   \n",
       "286091         -113698.699726         -192210.876425          -27627.809010   \n",
       "286092          -53678.418683         -166703.000669           86349.888528   \n",
       "286093         -123110.822316         -199889.066997          -49392.633591   \n",
       "286094         -122251.188352         -196639.141355          -48533.724648   \n",
       "286095         -118019.196569         -193449.359416          -33041.876060   \n",
       "\n",
       "        Principal component 7  label  \n",
       "0                 5982.345935      0  \n",
       "1                 5811.504529      0  \n",
       "2               -37522.217603      0  \n",
       "3                 6391.775131      0  \n",
       "4               -37616.209415      0  \n",
       "...                       ...    ...  \n",
       "286091          -36484.272722      0  \n",
       "286092          -14930.171400      0  \n",
       "286093          -42680.484006      0  \n",
       "286094          -39650.304436      0  \n",
       "286095          -36870.608685      0  \n",
       "\n",
       "[286096 rows x 8 columns]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_final"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Starting the main loop and all other required loops (for permutations)\n",
    "The permutation number is instantiated at the top of the notebook, in the environment variables section. This allows the number of permutations to be easily changed.\n",
    "\n",
    "**IMPORTANT NOTE:** A **for loop** in one Jupyter Notebook cell cannot be extended past a single cell. This is bad for documentation purposes because markdown cells cannot be inserted between cells as this would cause the **for loop** to become out of scope for other cells. Therefore, a highly modulated approach must be taken, where everything is put into a function/ method. This allows markdown cells to exist above a section of code/ method so it can be explained/ documented. Code comments will be used when necessary too."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Instead of a 3D array (like the MATLAB implementation), this uses just 1 classifier at a time and uses Pandas DataFrames (2D array essentially) for easy plotting later, as one can use the Seaborn plotting library (https://seaborn.pydata.org/). Each Pandas Dataframe row is a permutation and each column has: the model's accuracy in 1st column, then each subsequent statistical distance measure to be used in the later columns.\n",
    "\n",
    "Then, one can graph a line graph/ Seaborn 'relplot' (https://seaborn.pydata.org/api.html) of the accuracy on the x-axis vs the specific statistical distance measure on the y-axis. Therefore resulting in 6 plots/ graphs, 1 for each ECDF statistical distance measure.\n",
    "\n",
    "Each class will represent a line on the graph (differentiated via hue colouring). Classes/ labels could also be separated by having separate plots for each class/ label. The hue approach is what has been used.\n",
    "\n",
    "NOTE: Could also store F1-Score, Sensitivity score, Precision score, etc... to see how these relate to the ECDF statistical distance measures too."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>Anderson_Darling_dist</th>\n",
       "      <th>CVM_dist</th>\n",
       "      <th>DTS_dist</th>\n",
       "      <th>Kolmogorov_Smirnov_dist</th>\n",
       "      <th>Kuiper_dist</th>\n",
       "      <th>Wasserstein_dist</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [Accuracy, Anderson_Darling_dist, CVM_dist, DTS_dist, Kolmogorov_Smirnov_dist, Kuiper_dist, Wasserstein_dist]\n",
       "Index: []"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Firstly, creating the final 2D-array (Pandas Dataframe) which will be used to store the Results\n",
    "# PRESERVE THE ORDERING\n",
    "results_column_names = ['Accuracy', 'Anderson_Darling_dist', 'CVM_dist',\n",
    "                                     'DTS_dist', 'Kolmogorov_Smirnov_dist','Kuiper_dist', 'Wasserstein_dist']\n",
    "# Creating the empty Dataframe for Results\n",
    "df_results = pd.DataFrame(columns = results_column_names)\n",
    "# Can copy this dataframe for future results tables e.g. for each class/ label\n",
    "df_results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Code for each permutation\n",
    "Now, running the code for each permutation requires Stratified splitting (KFold optional), model training and predicting classes via the chosen classifier, and finally the iteration over each class/ label to calculate the statistical distance. Then, once complete, the results table can be used to plot the results from all the permutations.\n",
    "\n",
    "**Quick note on terminology:** The terminology 'class' and 'label' is used interchangeably throughout the industry, but both mean the same things. They represent the different possible answers the dataset holds and/ or the model can output e.g. a dataset (for supervised learning i.e. given the answers to train with) with a person's personal data may have 2 classes/ labels (answers). Either Male or Female. Male is 1 class/ label, and Female is 1 class/ label. The number of classes in the dataset would be 2. Also, a model would only be able to predict and output 2 different options/ results.\n",
    "\n",
    "Using Python 'List Comprehensions'. This way is Python sub-list ID safe, see link for more info: https://thispointer.com/how-to-create-and-initialize-a-list-of-lists-in-python/\n",
    "\n",
    "See https://stackoverflow.com/a/17496530. Fast way to 'append' to dataframe for results table.\n",
    "\n",
    "**Most functionality has been extracted to functions/ methods, which reside at the top of this Jupyter Notebook file. Documentation and explanations behind each step can be found in the Methods section at the top of this Jupyter Notebook. There, it describes what each method does, what the parameters are for, and why the returned values are to be returned** "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 1st Set all variables needed outside for loop scope, e.g. the multi-dimensional Results array.\n",
    "labels = df_final['label'].unique()\n",
    "number_of_classes = len(df_final['label'].unique())\n",
    "\n",
    "# List of Lists to hold each separate label result, using list_index->label_number mapping (for accessing)\n",
    "list_of_lists_results = [[] for i in range(number_of_classes)]\n",
    "\n",
    "for current_permutation in range(number_of_permutations):\n",
    "    # 1.1. Cross validation, train test stratified splitting (extracted to a function, see top of file)\n",
    "    X_train, X_test, y_train, y_test = get_shuffled_stratifiedKFold_train_test_split(X, y)\n",
    "    \n",
    "    # 1.2. Train MLP (Neural net) model using the train test data, and model.predict to get pred_y\n",
    "    pred_y, accuracy = train_and_predict_Neural_Network_MLP_model(X_train, X_test, y_train, y_test)\n",
    "    \n",
    "    # 1.3. loop over each label/ class\n",
    "    for current_label in range(number_of_classes):\n",
    "        \n",
    "        # 1.4. Gets the correct indices for the train and test data ('X' data holds no labels)\n",
    "        X_train_loc_for_label, X_test_loc_for_label = get_X_train_and_test_data_for_given_label(labels,\n",
    "                                                        current_label, pred_y, X_train, X_test, y_train, y_test)\n",
    "        \n",
    "        # 1.5. Gets all ECDF statistical distance measures for current_label\n",
    "        dict_result_row = get_statistical_dist_measures_for_class_result(accuracy,\n",
    "                                                X_train_loc_for_label, X_test_loc_for_label)\n",
    "        \n",
    "        # 1.6. Append new dict row to current_label index of list of lists\n",
    "        list_of_lists_results[current_label].append(dict_result_row)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "After all permutations, convert each index (dict list) to a pandas dataframe. \n",
    "\n",
    "See this resource behind the idea. It's highly efficient but was more complicated to implement: www.stackoverflow.com/a/17496530"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Access specific dataframe by index e.g. class 1 dataframe->index 1 mapping\n",
    "result_dataframes = []\n",
    "\n",
    "for dict_result_list in list_of_lists_results:\n",
    "    result_dataframes.append(pd.DataFrame(dict_result_list, columns = results_column_names))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Printing the result dataframes. The .head(x) method just shows the top x rows in the dataframe."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>Anderson_Darling_dist</th>\n",
       "      <th>CVM_dist</th>\n",
       "      <th>DTS_dist</th>\n",
       "      <th>Kolmogorov_Smirnov_dist</th>\n",
       "      <th>Kuiper_dist</th>\n",
       "      <th>Wasserstein_dist</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.870319</td>\n",
       "      <td>61.100499</td>\n",
       "      <td>9161.863619</td>\n",
       "      <td>35808.471142</td>\n",
       "      <td>0.179922</td>\n",
       "      <td>0.066734</td>\n",
       "      <td>1.857652e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.620920</td>\n",
       "      <td>157.170604</td>\n",
       "      <td>18480.398136</td>\n",
       "      <td>369595.071424</td>\n",
       "      <td>0.461857</td>\n",
       "      <td>0.309650</td>\n",
       "      <td>2.124691e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.444733</td>\n",
       "      <td>149.016163</td>\n",
       "      <td>27443.830109</td>\n",
       "      <td>49795.646586</td>\n",
       "      <td>0.371975</td>\n",
       "      <td>0.361859</td>\n",
       "      <td>2.946909e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.899502</td>\n",
       "      <td>27.585232</td>\n",
       "      <td>4148.575388</td>\n",
       "      <td>15182.473702</td>\n",
       "      <td>0.088751</td>\n",
       "      <td>0.054574</td>\n",
       "      <td>6.707131e+05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.625114</td>\n",
       "      <td>158.183365</td>\n",
       "      <td>18477.318736</td>\n",
       "      <td>349258.091131</td>\n",
       "      <td>0.459777</td>\n",
       "      <td>0.306727</td>\n",
       "      <td>2.135545e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.635443</td>\n",
       "      <td>155.515536</td>\n",
       "      <td>18269.133937</td>\n",
       "      <td>320888.521695</td>\n",
       "      <td>0.445916</td>\n",
       "      <td>0.289257</td>\n",
       "      <td>1.902491e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.633817</td>\n",
       "      <td>155.986049</td>\n",
       "      <td>18344.354794</td>\n",
       "      <td>315086.901244</td>\n",
       "      <td>0.450844</td>\n",
       "      <td>0.291364</td>\n",
       "      <td>1.908136e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.632213</td>\n",
       "      <td>156.068085</td>\n",
       "      <td>18279.883732</td>\n",
       "      <td>332357.095537</td>\n",
       "      <td>0.436043</td>\n",
       "      <td>0.292511</td>\n",
       "      <td>1.983995e+07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Accuracy  Anderson_Darling_dist      CVM_dist       DTS_dist  \\\n",
       "0  0.870319              61.100499   9161.863619   35808.471142   \n",
       "1  0.620920             157.170604  18480.398136  369595.071424   \n",
       "2  0.444733             149.016163  27443.830109   49795.646586   \n",
       "3  0.899502              27.585232   4148.575388   15182.473702   \n",
       "4  0.625114             158.183365  18477.318736  349258.091131   \n",
       "5  0.635443             155.515536  18269.133937  320888.521695   \n",
       "6  0.633817             155.986049  18344.354794  315086.901244   \n",
       "7  0.632213             156.068085  18279.883732  332357.095537   \n",
       "\n",
       "   Kolmogorov_Smirnov_dist  Kuiper_dist  Wasserstein_dist  \n",
       "0                 0.179922     0.066734      1.857652e+06  \n",
       "1                 0.461857     0.309650      2.124691e+07  \n",
       "2                 0.371975     0.361859      2.946909e+06  \n",
       "3                 0.088751     0.054574      6.707131e+05  \n",
       "4                 0.459777     0.306727      2.135545e+07  \n",
       "5                 0.445916     0.289257      1.902491e+07  \n",
       "6                 0.450844     0.291364      1.908136e+07  \n",
       "7                 0.436043     0.292511      1.983995e+07  "
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Print first dataframe result table, for class 0\n",
    "result_dataframes[0].head(8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>Anderson_Darling_dist</th>\n",
       "      <th>CVM_dist</th>\n",
       "      <th>DTS_dist</th>\n",
       "      <th>Kolmogorov_Smirnov_dist</th>\n",
       "      <th>Kuiper_dist</th>\n",
       "      <th>Wasserstein_dist</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.870319</td>\n",
       "      <td>44.325598</td>\n",
       "      <td>6478.958665</td>\n",
       "      <td>7.583210e+03</td>\n",
       "      <td>0.122589</td>\n",
       "      <td>0.033210</td>\n",
       "      <td>8.269274e+04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.620920</td>\n",
       "      <td>106.371595</td>\n",
       "      <td>17177.547300</td>\n",
       "      <td>2.638162e+04</td>\n",
       "      <td>0.287349</td>\n",
       "      <td>0.075716</td>\n",
       "      <td>6.654902e+05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.444733</td>\n",
       "      <td>327.732032</td>\n",
       "      <td>32561.030027</td>\n",
       "      <td>1.593336e+06</td>\n",
       "      <td>0.951460</td>\n",
       "      <td>0.289159</td>\n",
       "      <td>2.123254e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.899502</td>\n",
       "      <td>31.369927</td>\n",
       "      <td>4187.711160</td>\n",
       "      <td>7.424247e+03</td>\n",
       "      <td>0.064913</td>\n",
       "      <td>0.018675</td>\n",
       "      <td>7.367802e+04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.625114</td>\n",
       "      <td>106.386651</td>\n",
       "      <td>17155.050633</td>\n",
       "      <td>2.239371e+04</td>\n",
       "      <td>0.287072</td>\n",
       "      <td>0.075881</td>\n",
       "      <td>5.408896e+05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.635443</td>\n",
       "      <td>105.523138</td>\n",
       "      <td>16997.740797</td>\n",
       "      <td>2.101759e+04</td>\n",
       "      <td>0.283393</td>\n",
       "      <td>0.073296</td>\n",
       "      <td>4.788315e+05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.633817</td>\n",
       "      <td>105.815976</td>\n",
       "      <td>17053.056862</td>\n",
       "      <td>2.151505e+04</td>\n",
       "      <td>0.283031</td>\n",
       "      <td>0.073439</td>\n",
       "      <td>4.898215e+05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.632213</td>\n",
       "      <td>105.293831</td>\n",
       "      <td>16939.284837</td>\n",
       "      <td>2.113934e+04</td>\n",
       "      <td>0.284192</td>\n",
       "      <td>0.074504</td>\n",
       "      <td>4.901474e+05</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Accuracy  Anderson_Darling_dist      CVM_dist      DTS_dist  \\\n",
       "0  0.870319              44.325598   6478.958665  7.583210e+03   \n",
       "1  0.620920             106.371595  17177.547300  2.638162e+04   \n",
       "2  0.444733             327.732032  32561.030027  1.593336e+06   \n",
       "3  0.899502              31.369927   4187.711160  7.424247e+03   \n",
       "4  0.625114             106.386651  17155.050633  2.239371e+04   \n",
       "5  0.635443             105.523138  16997.740797  2.101759e+04   \n",
       "6  0.633817             105.815976  17053.056862  2.151505e+04   \n",
       "7  0.632213             105.293831  16939.284837  2.113934e+04   \n",
       "\n",
       "   Kolmogorov_Smirnov_dist  Kuiper_dist  Wasserstein_dist  \n",
       "0                 0.122589     0.033210      8.269274e+04  \n",
       "1                 0.287349     0.075716      6.654902e+05  \n",
       "2                 0.951460     0.289159      2.123254e+07  \n",
       "3                 0.064913     0.018675      7.367802e+04  \n",
       "4                 0.287072     0.075881      5.408896e+05  \n",
       "5                 0.283393     0.073296      4.788315e+05  \n",
       "6                 0.283031     0.073439      4.898215e+05  \n",
       "7                 0.284192     0.074504      4.901474e+05  "
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Print second dataframe result table, for class 1\n",
    "result_dataframes[1].head(8)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There's only 2 classes, so only 2 result dataframes are shown. Each row represents a permutation. Each dataset represent a single class."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plotting the results\n",
    "\n",
    "Following: https://stackoverflow.com/a/51733133 to show both datasets in the same Seaborn graph. Seaborn doesn't allow multiple plots to be layered over each other, like in MatPlotLib, so you have to concatenate the results and use 'hue' on the new column, which represents each dataset.\n",
    "\n",
    "First, one has to get all the data into 1 Dataframe. The number of classes in the current dataset is passed to the method below, which **dynamically** returns the concatenated Dataframe, holding the row information for all the classes, separated by a newly added column called **'dataset'**, which one can see below. Each class can be separated in this way.\n",
    "\n",
    "This is really important, as the **Seaborn graphing/ plotting only works when 1 Dataframe is used**. It can't graph using multiple dataframes passed in, unlike MatPlotLib may be able to.\n",
    "\n",
    "Now, in Seaborn graphing/ plotting, the **'hue'** parameter can be placed upon the **'dataset'**, which allows the plots to differentiate between classes visually, by using a different colour or pattern for each class. If a dataset holds more than 7 or 8 different classes, this may cause the plotting to look too cluttered and separate plotting may be required. **For this dataset, and others in the Network Intrusion CICIDS2017_Security_dataset, it works well.**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>Anderson_Darling_dist</th>\n",
       "      <th>CVM_dist</th>\n",
       "      <th>DTS_dist</th>\n",
       "      <th>Kolmogorov_Smirnov_dist</th>\n",
       "      <th>Kuiper_dist</th>\n",
       "      <th>Wasserstein_dist</th>\n",
       "      <th>dataset</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.870319</td>\n",
       "      <td>61.100499</td>\n",
       "      <td>9161.863619</td>\n",
       "      <td>35808.471142</td>\n",
       "      <td>0.179922</td>\n",
       "      <td>0.066734</td>\n",
       "      <td>1.857652e+06</td>\n",
       "      <td>class0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.620920</td>\n",
       "      <td>157.170604</td>\n",
       "      <td>18480.398136</td>\n",
       "      <td>369595.071424</td>\n",
       "      <td>0.461857</td>\n",
       "      <td>0.309650</td>\n",
       "      <td>2.124691e+07</td>\n",
       "      <td>class0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.444733</td>\n",
       "      <td>149.016163</td>\n",
       "      <td>27443.830109</td>\n",
       "      <td>49795.646586</td>\n",
       "      <td>0.371975</td>\n",
       "      <td>0.361859</td>\n",
       "      <td>2.946909e+06</td>\n",
       "      <td>class0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.899502</td>\n",
       "      <td>27.585232</td>\n",
       "      <td>4148.575388</td>\n",
       "      <td>15182.473702</td>\n",
       "      <td>0.088751</td>\n",
       "      <td>0.054574</td>\n",
       "      <td>6.707131e+05</td>\n",
       "      <td>class0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.625114</td>\n",
       "      <td>158.183365</td>\n",
       "      <td>18477.318736</td>\n",
       "      <td>349258.091131</td>\n",
       "      <td>0.459777</td>\n",
       "      <td>0.306727</td>\n",
       "      <td>2.135545e+07</td>\n",
       "      <td>class0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.635443</td>\n",
       "      <td>105.523138</td>\n",
       "      <td>16997.740797</td>\n",
       "      <td>21017.589383</td>\n",
       "      <td>0.283393</td>\n",
       "      <td>0.073296</td>\n",
       "      <td>4.788315e+05</td>\n",
       "      <td>class1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.633817</td>\n",
       "      <td>105.815976</td>\n",
       "      <td>17053.056862</td>\n",
       "      <td>21515.047684</td>\n",
       "      <td>0.283031</td>\n",
       "      <td>0.073439</td>\n",
       "      <td>4.898215e+05</td>\n",
       "      <td>class1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.632213</td>\n",
       "      <td>105.293831</td>\n",
       "      <td>16939.284837</td>\n",
       "      <td>21139.344497</td>\n",
       "      <td>0.284192</td>\n",
       "      <td>0.074504</td>\n",
       "      <td>4.901474e+05</td>\n",
       "      <td>class1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.636533</td>\n",
       "      <td>104.971634</td>\n",
       "      <td>16879.990587</td>\n",
       "      <td>17398.621598</td>\n",
       "      <td>0.282764</td>\n",
       "      <td>0.072998</td>\n",
       "      <td>4.167106e+05</td>\n",
       "      <td>class1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.623185</td>\n",
       "      <td>106.403041</td>\n",
       "      <td>17171.690641</td>\n",
       "      <td>24168.598655</td>\n",
       "      <td>0.286770</td>\n",
       "      <td>0.075851</td>\n",
       "      <td>5.873668e+05</td>\n",
       "      <td>class1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>110 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    Accuracy  Anderson_Darling_dist      CVM_dist       DTS_dist  \\\n",
       "0   0.870319              61.100499   9161.863619   35808.471142   \n",
       "1   0.620920             157.170604  18480.398136  369595.071424   \n",
       "2   0.444733             149.016163  27443.830109   49795.646586   \n",
       "3   0.899502              27.585232   4148.575388   15182.473702   \n",
       "4   0.625114             158.183365  18477.318736  349258.091131   \n",
       "..       ...                    ...           ...            ...   \n",
       "5   0.635443             105.523138  16997.740797   21017.589383   \n",
       "6   0.633817             105.815976  17053.056862   21515.047684   \n",
       "7   0.632213             105.293831  16939.284837   21139.344497   \n",
       "8   0.636533             104.971634  16879.990587   17398.621598   \n",
       "9   0.623185             106.403041  17171.690641   24168.598655   \n",
       "\n",
       "    Kolmogorov_Smirnov_dist  Kuiper_dist  Wasserstein_dist dataset  \n",
       "0                  0.179922     0.066734      1.857652e+06  class0  \n",
       "1                  0.461857     0.309650      2.124691e+07  class0  \n",
       "2                  0.371975     0.361859      2.946909e+06  class0  \n",
       "3                  0.088751     0.054574      6.707131e+05  class0  \n",
       "4                  0.459777     0.306727      2.135545e+07  class0  \n",
       "..                      ...          ...               ...     ...  \n",
       "5                  0.283393     0.073296      4.788315e+05  class1  \n",
       "6                  0.283031     0.073439      4.898215e+05  class1  \n",
       "7                  0.284192     0.074504      4.901474e+05  class1  \n",
       "8                  0.282764     0.072998      4.167106e+05  class1  \n",
       "9                  0.286770     0.075851      5.873668e+05  class1  \n",
       "\n",
       "[110 rows x 8 columns]"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "concatenated = get_concatenated_results_holding_all_classes_results(number_of_classes, result_dataframes)\n",
    "concatenated.head(110)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Seaborn plotting\n",
    "\n",
    "Seaborn is \"a Python data visualization library based on matplotlib. It provides a high-level interface for drawing attractive and informative statistical graphics.\" via https://seaborn.pydata.org/. \n",
    "\n",
    "**In the imports section, Seaborn is imported as 'sns'** which is the industry-norm.\n",
    "\n",
    "It provides useful functions for plotting graphs that are more pleasing-to-the-eye than Matplotlib can be.\n",
    "\n",
    "Below is a larger example **relplot** (lineplot) that is being used to visualise the results. See further below for full results.\n",
    "\n",
    "### What are the graphs/ plots showing, and why?\n",
    "\n",
    "The graphs are plotting a model's varying accuracy against an ECDF-based statistical distance measure. Each row from the 'concatenated' Pandas Dataframe results table represents 1 permutation. \n",
    "\n",
    "Each permutation uses a different dataset split to train, test, and predict classes/ labels on. \n",
    "\n",
    "Each permutation can vary in accuracy, and also vary in its ECDF-based statistical distance, of a specific measure i.e. Anderson_Darling_dist.\n",
    "\n",
    "Essentially, these plots show that accuracy can be predicted based upon the ECDF-based statistical distance values calculated, based upon the data. This is a novel/ new idea in the field of AI/ ML safety, and is the basis of the SafeML idea.\n",
    "\n",
    "In safety critical environments, predicting a model's accuracy based upon the incoming data- before the model can even use it to predict the next 'action' to take- is a great way to spot potential issues before they occur. Then, these potential errors- based upon a threshold- can be used to decide what steps to take next e.g.\n",
    "\n",
    "- In a human-in-the-loop system such as a self-driving car, if a large statistical distance value is detected (i.e. the input data is widely different to previous data fed to the model), then the AI system driving the car can pass control back to the driver before an accident occurs because the AI model driving the car could make a poor decision, since a large statistical distance value has been positively correlated to poorer model performance. This is the key idea of SafeML."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x7fe73e2a4a90>"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 909.775x595.44 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.relplot(data=concatenated, x='Accuracy', y='Anderson_Darling_dist',\n",
    "                hue='dataset', height=8.27, aspect=11.7/8.27)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Seaborn pairplot\n",
    "A Seaborn **'pairplot'** can be used to plot 1 continuous feature against another, as a scatterplot in the example below.\n",
    "\n",
    "The **data=x** parameter is where the Pandas Dataframe (results) is to be passed. Seaborn only allows 1 Pandas Dataframe to be passed in. This is where it can differ from Matplotlib. Seaborn can use this Dataframe **x**, and it can pull out column names, etc... automatically for you. Thus, instead of writing **'y_vars=concatenated['Accuracy']'**, which is what one would usually have to do, you can just write the column name, and Seaborn will find this in via the **data=x** provided.\n",
    "\n",
    "The **y_vars=x[y]** parameter defines what column's data will be used on the y-axis. The column/ feature name, **y**, provided via **x[y]** is the column that will be used in the plot.\n",
    "\n",
    "The **x_vars=x[x1, x2, x3, ...]** parameter defines what column or columns' data will be used on the x-axis. Since a pairplot is built specific to plot 'pairs' of columns against each other, an array can be passed into this. Each new array index will add an extra plot (horizontally) to the pair plot.\n",
    "\n",
    "The **hue** parameter describes which feature/ column will be used to differentiate between data points plotted. It's like a **legend** or **c** parameter in Matplotlib. See here for in-depth explanation, comparing Matplotlib and Seaborn: https://stackoverflow.com/a/26139658\n",
    "\n",
    "The **height** and **aspect** parameters are used to define the size of the plots. Height for the individual plot height, and aspect to control the width of each plot.\n",
    "\n",
    "See docs: https://seaborn.pydata.org/generated/seaborn.pairplot.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.PairGrid at 0x7fe73c83d5b0>"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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/80JERGRY5ISeiIicrSZgdPKbhXOLIjf8P/dkijxd+86AyeBsgJnAox/4oyrtq+ODzgXZxyohcA7OC2KLrDW9vjHtb/lyvE4s2m+hfNj9kEgFGdig75wK06Lo7dwunN+SMcxwX4CxOD8oC/EGYz+Hzjd3/6N8xzOxknGtPYiTiLpNf92PzhADD/COc97/bFcjTPJxMJDOI9ynJltX8KZ6fdhnITUz/dVMMbsNMY8cgj7PGT+1/9Cfzwf4sx6+jqtZir1twa7Gmcmz/U4M3TeijP2XXsv+vf1pv+92SnjzBb6JZznuzNP44xLd6CZX/+AM2HDGpzXaq6/K+lJOK2j/o0zacHzwCycJM1hsda+DnzZH/c6nKTS34CftqrWG++NnsRWi3MdqMd5HRfhdCteYK1t3521vRfp+L6vwhmj7hs4rS434iQr3wNOstbuS/jehXPO38Q537fxz5B8iO+bQz3fFTiz114BfI7TrfY77ar16P98N+MuxWlB+gHOc/Nd4MZ9r7O19n2crriTcCZTWYvzfqlkf7L8XzjXriX+Y195yE+EiIjIUcIcxm8SERERkX7D31KoGPiytfbJQMfTXcaZDCMbuMJa+1Kg4xERERGR/k+TYoiIiMjR4jRg6UBJ5vm7vMbjtIDKAV4JaEAiIiIiMmCohZ6IiIhIABhjTgbexxkX7Bpr7eKABiQiIiIiA4YSeiIiIiIiIiIiIgOIJsUQEREREREREREZQJTQExERERERERERGUCU0BMRERERERERERlAlNATEREREREREREZQJTQExERERERERERGUCU0BMRERERERERERlAlNATEREREREREREZQJTQExERERERERERGUCU0BMRERERERERERlAlNATEREREREREREZQJTQExERERERERERGUCU0BMRERERERERERlAlNATEREREREREREZQJTQExERERERERERGUCU0BMRERERERERERlAlNATEREREREREREZQDyBDuBQLViwwL755puBDkNERHqH6aqCrvsiIkcVXfdFRI4tXV73pWcGXAu9oqKiQIcgIiJHkK77IiLHFl33RUREujbgEnoiIiIiIiIiIiLHMiX0REREREREREREBhAl9ERERERERERERAYQJfREREREREREREQGECX0REREREREREREBhBPoAPoF8pzoDQLvOEQP4qd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\n",
      "text/plain": [
       "<Figure size 1276.97x288 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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8SciIiIiIiIiIjIKDCRRdxmwwxjzK2PM1OEOSERERERERERERA7ukAk9y7KuAuYBO4H7jDEfGmNuNMZEDHt0IiIiIiIiIiIi0suAptJaltUAPAH8F5gAXAKsNsZ8aRhjExERERERERERkQMMpIbehcaYp4G3ATcw37Ksc4A5wNcPse/Zxphtxph8Y8xt/bz+e2PM2q6f7caYukG9CxERERERERERkXHCNYA+lwK/tyzr3f0bLctqMcZcd7CdjDFO4C/AGUARsMIY86xlWZv3O8at+/X/EvbUXhERERERERERETmIgUy5vR34aN+GMSbEGJMJYFnWGx+z33wg37KsXZZldWBP173oY/pfATwygHhERERERERERETGrYEk9B4H/Ptt+7raDiUV2LvfdlFXWx/GmAwgC3jzIK/faIxZaYxZWVlZOYBTi4jI0UDXfxGR8Uv3ABERkYMbSELP1TXCDoCu3z1DHMflwBOWZfn6e9GyrLsty8qzLCsvISFhiE8tIiKjla7/IiLjl+4BIiIiBzeQhF6lMebCfRvGmIuAqgHsVwyk77ed1tXWn8vRdFsREREREREREZFDGsiiGDcDDxtj7gIM9jTaqwew3wogxxiThZ3Iuxy48sBOxpipQAzw4UCDFhERERERERERGa8OmdCzLGsnsNAYE9613TSQA1uW5TXG3AK8AjiBf1mWtckY8xNgpWVZz3Z1vRz4r2VZ1qDegYiIiIiIiIiIyDgykBF6GGPOA2YAwcYYACzL+smh9rMs60XgxQPafnjA9u0DjFVERERERERERGTcO2QNPWPM34HLgC9hT7n9FJAxzHGJiIiIiIiIiIhIPwayKMYiy7KuBmoty/oxcDyQO7xhiYiIiIiIiIiISH8GktBr6/qzxRiTAnQCE4YvJBERERERERERETmYgdTQe84YEw38GlgNWMA9wxmUiIiIiIiIiIiI9O9jR+gZYxzAG5Zl1VmW9SR27bypBy5sISIiIiIiIiIiMloZY243xnzjY16/2BgzfYjPmWmMuXIoj7nPxyb0LMvyA3/Zb7vdsqz64QhEREREREREREQkQC4GhjShB2QCI5/Q6/KGMeZSY4wZjgBERERERERERESGmjHme8aY7caY94EpXW03GGNWGGPWGWOeNMaEGmMWARcCvzbGrDXGZPfXr2v/TxljNna1v9vV5jTG/Lqr/3pjzE1dIdwJnNB1zFuH8r0NJKF3E/A40G6MaTDGNBpjGoYyCBERERERERERkaFijDkWuByYC5wLHNf10lOWZR1nWdYcYAtwnWVZHwDPAt+0LGuuZVk7++vXtf8PgbO62i/sarsOqLcs67iu89xgjMkCbgPe6zrm74fy/R1yUQzLsiKG8oQiIiIiIiIiIiLD7ATgacuyWgCMMc92tc80xvwMiAbCgVcOsv/B+i0F7jPGPAY81dV2JjDbGPPJru0oIAfoGLJ3c4BDJvSMMSf2125Z1rtDH46MaZ1t0FwFwZH2zyhU1diO12+RFBmEZpGLyJjk64SmMnCHQWhsoKMRGZDmDi91zR1Eh3oICzrkx0+R4ef3Q2MpOD0QnhDoaEQCqryhDYCkyOAARyIyYu4DLrYsa50x5hrg5MPpZ1nWzcaYBcB5wKqukYAG+JJlWb2Sg8aYgx37iA3kE9U39/s9GJgPrAJOHZaIZGyq2Apv3QE7XoakWXDWHTBxQaCj6tbU7uXVTWX88uWttHb4uOHESVyWl06ibloiMpbU7Ialf4L1j0DURDj7Tph0EjicgY5M5KA2l9Rz50tbWbarhuMyY/jOudOYmRoV6LBkPKsvghX3wkd3Q0gMnPVzyDkT3CGBjkxkRNW2dPDs2mL++EY+AF85bTIXzU0lOtQT4MhEhsy72CPpfoGd/7oA+AcQAZQaY9zAZ4Dirv6NXa/t028/Y0y2ZVnLgeXGmHOAdOzRe18wxrxpWVanMSa3q/+BxxwyA5lye8H+28aYdOAPwxGMjFGt9fDsLVC0wt4uXgkPXwqffhDicyAqLbDxAasLavnaY+u6t3/76naiQzycOzOZdUV17KpqZlJCOHPSo4gLCwpgpCIi/fB5oWIzfPAn2PC43Va1Df7zSbj+TUiZG9DwRA6mvKGNGx9cRVFtKwBLd1Zz3f0reOaLi5kQNXzJk06fnw3F9WwsriciyMXcidFkxYcP2/lkjFn3CLz/O/v3jiZ47Gq45kXIXBzYuERG2Af5Vfzo2c3d2z96djPx4UGcNzvloPtsLW1gXVEdfgvmpEUxPUUPaGT0sixrtTHmUWAdUAF0JS34AbAcqOz6c1/C7b/APcaYLwOf/Jh+vzbG5GCPynuj6/jrsVe0Xd21qGwl9qq56wGfMWYdcN9Q1tEbzJyHImDaUAUgR4G6wp5k3j7tjVCwFN79NXzy3xCRFJjYuryzvbJP20PLCvBZfm7f7yZ2zaIMvn32VEI8mg4kIqNIwfuw+z3Y9FTvdr8PKrcpoSejVkF1S3cyb5/yhnYKqluGNaH3QX411973EX7L3k6LCeHB6+YrqSfQVAkr/923vWCpEnoy7jyxqrhP2+Orig6a0NtUXM9ldy+jqd0LQLDbwX9vPJ656dHDGabIEbEs6+fAz/t56W/99F0KTD+gT3/9PtHfqYDvdv0caFhmuB5ylVtjzJ+NMX/q+rkLeA9YPRzByBjlCe1/ioLTbX84Kt808jEdIDW6b3zpsaE8t660V9t9HxSwq7J5pMISETm09iZ48+fQUg1hiX1fH6U1S0UAwoNc9FeyNnwY6+g1tHbyy1e2difzAIpqW1lbWDds55QxxB3S/+wRY6CtceTjEQmg7ISwPm2TEw7+4OP59aXdyTyAtk4///2ocFhiE5FDO2RCD1iJXTNvFfAh8G3Lsq4a1qhkbInJgtNu7902+TQoXW//3tE04iEd6ISceBIje6bSBrkcXH18BqsKavv0benwjWRoIiIfz9tuL4Kx6SlYcBO9siOpeZA8O3CxiRzCpIQwbj4xu1fbdUuymNTPl8ih0ub1UdnY3qe9vs3bT28Zd4LCYeEXwLFfUjk6AywLvG2Bi0skAC6Zl0pkcM//C5HBLi6Zl3rQ/sW1LX3a9ta24N//CYqIjJiBPB59AmizLMsHYIxxGmNC9y37K4LDAfM+A4nT7Km3lh+qttt1ntyhkDAl0BGSkxTBozcez8biejq8fqZNiCAhPIi0mJBeU4EmxoaQERd60OO0d/poaOskOsSD2zWQfLiIyBEKi4PjrofXfgjrH4NTfwCdLRA/BSbMgaBhqbErMiSC3U5uOmkSiybHUVzbSkp0CLPToggd4tIWrR0+mto7iQ0LIjEimM8uzOB3r23vft0YmKWFOKSpomuE3kQ4+Tt2As/hgo5mrXYr49KM1Cie/MIiNpU0ABbTU6LITTr454qL5qXy7PreM5yumD8Rh6Ofodhy2Jo7vLS0+4gL8+i/qQzIQD5NvQGcDuwbZhUCvAosGq6gZAwKirBXWvSEwfrH7bpOp/4IMpeMioQeQFZ8GFnxvUcE3HN1Hn94fTvLdtWwKDuOr5ye02vl25qmdrx+i6K6FgzwwvoynllbzClTErnxxEnkfMwNT0RkyMy6zL6uLv8brH8CzvkFdLbBC9+A1lo49XsQMQE6WyEyFWImBjpikW7RoR5OyDn8REldSwfbyhppaPOSFR/K5MSee65lWZiu0apr99byu1e3s7m0gfNnp3DNokw+lZcGWDzwYQHx4R6+ffa0QSf0mto6ae30kxChRbPGrPpiWPMQrPoXRKbBmT+DhKmw6Wn72pkyDzKOD3SUIgGRkxQx4O808zNj+d2n5/C717bj91t86bTJLJkcP6zxdfr81LZ0EBnsItg9Ouuc739POtDemhbyKxpxOR1MSYro9V1zfyv31PDbV7eRX9HMxfNS+OzCDCbGDd9odjk6GMv6+OGxxpi1lmXNPVTbSMnLy7NWrlwZiFPLodQWQulaKNsIe96BlGMhJBpiMmDKuaN2FEl7p4+61k6iQ9wEuZ2AfeF9aWMp9y3dw7z0aM6cmcxTq4vwuBxcNDcVn8/C6/dzXGYMGAfBLsdBL84i0sugHzfq+o9dzL12l11Tr2IzTDoZcs8GXwdsfMq+zs6+DOKy7VXGRQKotK6VisZ24sI9pMUcfPR7f6qa2vnZ85t5Zm0JYBdef+i6Bfgti4eWFdDU7uOzCzNIjPDwnac2cNbMCbR2+vA4HTgMfH5JFqEeF5WNbQS5nESGuA87fp/fYtmuan79ylZK6tr4zIKJfCovnZR+6vLKgBzRcJNB3wP8fnjr5/Deb3raJsyBE75ur3ZrYV9LG8tgxsVaZEhkAGqbO7Asi9jw4X3QsbOikbvf280bW8qZlx7DV07PYeYRjrZu6fBSUN2MwZARF0aIx9ndvq2skZI6ezT5lOSIg44m9/sttpc3UlLfyiubyimqaeGy4yZyQk48MWEewL6HFFQ3c9k/llHZZJeBmJkayd8+cwxup5NOv58JkcG4nA62lzdy4V3v09bp7z7HJ+al8otLZxHkch7R+x0lNNxwmAwkxd1sjDnGsqzVAMaYY4HWQ+wj443fDzU74f3fQ0nXmimFy+wRejVpEBwDuWcGNsaDCHI7SepK5DW0drKxuJ61e+v41SvbcDkMs9Kj+cp/13b3f2NLBT+7eCYf7KwmLtyD1+snMtTD1tIGkqOCyU1WgXoRGSZt9fDQJ6G9wd7e/Aykz4cXv9nTZ8v/4IrHAAPxkwMRpQjv51fxlUfW0NDWyfUnZDEtOZKoEDe5yREDWt12U3EDS/OrOSk3gT3VzRRUt7C5tIEfP7cZX1etpje3VvCXK+fx9TOnUNbQxiMfFVJe384NJ05iTUEdE+NCiAnxdD+sO1ybSuq5+l8fdZ/v96/voN3r5xtnTtFUqLGkqQw+urtn2zhgzhXw2NU9bTtehjN+Bi9/G07+nr3areOo+BItMiz2Ja2GU31LB994fD1r9tYB8NqWclYX1vK/WxYf9kOifYpqW/jFi1t5YYM9bfjSY1L5+plTSAgP4pHlhfz0hS3dfb937jQ+tygDTz8JtQ92VbO6oJZ/vLOT5q7660t3VvPD86czKzWSqsZ2qls6aenw8aMLprOppI6/v7ubULeT9Xvr2V3dTHunj3kTo4kLD6atw8t3z5nKXW/lU9HYAcAza4v50mk5fWaYiexvIAm9rwKPG2NKsDOrycBlwxmUjEE1+dBSYyfz4rJh1qfA7wWHGybMhh2vj9qE3j51LR388uWt1Ld2sq3MnmGelxnDu9sqe/XzW9Du9XPG9CTK6tuJCw/ihgdWUd/aSXpMCHdeOpuEcBe5ydEBeBciclSr2taTzAPIWAwbn7QLhM25EqLT7cLujSV2DdPQOAiNCVy8Mi4V1bbwxYdXU9/aydfOyOXRFXv5W90uACbFh3HP1XlkJx58FUUAv2Vx3uwJrCqo5bjMWK5dnMmm4obu5No+932wB7fTwe6qZn564Qwa27386LlNWH64/oQsshLCiA5243Ya3tpWyaLseGakRJIwgFH1W8sa+5zvgQ8L+OzCDCZolN7Y4QyC0Niea2fqsbDzLft3VzDkfd5eKCMoHCbMg8IPIDwREqcGLmYRobC2pTuZt091cwe7KpsHndB7bXN5dzIP4MnVxRyXGcsxGTHc8dLWXn3vfHkrJ+TGM/WAwRr1LR387PnNnDkjqTuZt89f387n5xfPpK6tk5rmDjp8fprbvRhj+NfnjiM8yMkDH+7BGMPnjs+kurmdtXtreW9HFTXNnXz5tFzWFNby5OpiwoNdFNY0k1/RyIyUKOLCPNS3dBAa5CI8+PBHncvQMsbcDjRZlvWbQ/Ud4PHOBv4IOIF/WpZ150D2O2RCz7KsFcaYqcC+QmjbLMvqHHSkcnRqqQZ/p71K2OzL4J1fdSX0nHDWL+z6eqPc5tIGHvloL0smxxMTal8kT5ycwPs7q3r1u+GESTyzuph1xfWAXZvv80uyuOvNHSyeHM/6ojqmJkfi9dcxPSV6pN+GiBzN3Ac8pbX8YJyw6Cuw801Y+7DdHp8LJ34TXG4IPW7k45RxrbS+lfrWTlKjQyipa6W4rmdix66qZl7ZVMb/JR589Ghzu5f/fFTIa5vLAdhQXM+uymjmTeybnHY6DJYFpfVt7K5u5g+v76DN6+f7503jD6/voL7V/sh64ewJnDtnAvd9sIfFk+PITginpdNHp9dPdmI4s1Kj+tQ/CvP0HZURE+bGo0WxxpawOLtm3qNX2dsOd8/ou1O/Dx/eZU+3Bcg5E2ZeCvV7ldATCbBglxOXw+A94MFKyCBHXVuWxUsby/q0v76lnBmpkX0e4Pj8FrXNHX36t3T4KKxpwfQzi9RhDC6ng8LqVv7+7k4sCzxOB984K5eapnaqmiyiQj3srGymrKGNotpWfvvqdjp89lTb1YW1/Oj86Zw1I5miula2lTXy/PoSTsxJZE56FNVNHVQ0tpGdEM78rFgSIlTy6WhgjHECfwHOAIqAFcaYZy3L2nyofQ/5icQY80UgzLKsjZZlbQTCjTH/d6RBy1EmKBpcHlhwE7z3OzuZB3YR91e/N2rr5+2vusm+YH+4q5pzZiXjdBg6/H5OmZrY3Wffsu77knkAu6uaKalr5ccXzmDZrmp++fI2Pn//Ch5evpcdZQ2IiAyZpOmQeWLPdsEHMP9G+4FK2fqe9qrtULIWfL4+hxAZbnFhQQS5HKTGhLCrqrnP66sLaz92/z3Vzd3JvJ596lg8OQ63s/cXqFOnJtHp8/Hts6dQ19rJtUuy+OlFM3hmTXF3Mg/g2fWl5Jc3M3VCBC9tLOfz96/klv+s4ak1xTy1uphVBX1jmpUaRWZc71Eg3zt3GnHDXDNKhsHkM+Dal+zE3ryrYe6VkJYHe97rSeYB7HgVfF4ITw5crCICQGZcGP93cnavtrNmJJGT9PEjvA/GGMOi7Lg+7fOz4ogN9XQP6NgnOtRNemzfkYDxEUFcPDcVh+n5brjPZ4/PwOvzdyfzADp8fu56M5+48CDWF9Xz0LJCPtxZzY6Kpu5RfPu7d+lulu2uJszjoqndyzfPnMprm8u44YFV3PbUBnZVNrOzsoml+dW0d3r7xNfU1smOcrsW4HiUedsLV2be9sKezNte8Hf9eeVQHNcYc7UxZr0xZp0x5sEDXrvBGLOi67UnjTGhXe2fMsZs7Gp/t6tthjHmI2PM2q7j5QDzgXzLsnZZltUB/Be4aCBxDWTK7Q2WZf1l34ZlWbXGmBuAvw7srcu4EJdtF2gPigBvW+/XfJ1Qtxs6jgPP6J2iMrHrgu3zW9z3wR6+cWYuCRFB3Pv+br577jRWFdSSFR9KYXVLn323ljYQG+phT9drlgUPLy/k+ElxeFwOMuIHd+MREeklPBEu+RsUrYC6QnskXlQGbHisb9/iFTD3qpGPUca9zLgw7vzELH78/GYuy0vno901vV4/a8bHJ0vqWzoxBg5cty082MUfL5vLy5vsZN/stChe21zOCTkJ/PLlbd39vnFmLltKG/sct8Pno6XD1yuh+N6OKmakRPLU6iLiwjxEhXqI7aoNNTEujPuvnc+qwlpqmjuYkxbN7LQjK8YuAeIOhoxF9g/A7vftWnnP3tK3b+UWcDhgwqyRjVFEenG7HHx+SRbHZMSwtbSRzPhQ5k2MJjp08PX7LpiTwvPrSsmvtMsrTZ8QyRnTk0iNCeXuq/P4xuPrKKhuISMulN98ck6/U3vdTgc3njiJv72dzxdOzqaguoWa5g6Oy4zhw53VpEaH9Ll/NbR5WVlYS0VjO0smx/N+fhUOY3D2U481yOmgqrGD+PB2Xttczq7KZraVN3W//szaEm49I5evP76WsKA8Gts6SYoMZkZKJJWN7fzgmY0s211DdKibn1w4g7NmJFPX2sm2skacDkNtcwdtXh8pUSHER3jIjAvD43JS2diG34KkMbzQY1fy7h5g319cBnBP5m0vsOfO8/4z2OMaY2YA3wcWWZZVZYyJBb68X5enLMu6p6vvz4DrgD8DPwTOsiyr2BgT3dX3ZuCPlmU9bIzxYE+xnQPs3e94RcCCgcQ2kISe0xhjrK7lcLuGAw5/FUwZW1weSJoJFZsgKLJ3jSdPGLQ1QVM5xGYGLMRDmZocwR8um8sP/7eRvTWtPLeulDsumUlsmIc7XtzClKQI9tY0c97sFF48YLj2osnxvLm5nNOmJWIsw3v5lbR7/RTXtbK+uJ5TpyaSEB5ERlwoLqem6ojIEYhKs38AyjaBv8Ou+7T1hd79MpbYU25LN+iLqYwoh8Nw/pwUpk2IpKalg9qWDp5YVYQxhqsWTOTE3PiD7tvW4eOljaWcP2sCz63vqXM0KzWSSXHhTE4IJzTISWFVMz4MuUkRPLisoNcxPthZzfGT4nhnR+8auPFhQby3vXcZjbyMGELcLowFa/bW0drhIzEyiJNyE3A6HHgti9ykCNJjQog6gi+RMsqEJULZOrsO6YEPRJJmwLK/2yvhJs0ITHwiAkB0qIeTpyRy8pTEQ3cegOyEcP5zwwLyK5rAwOTEcBK7pq0elxnLk19YRE1zB7FhHuI/ZjR2ZnwYP7l4JmX1bYR6nDy1uohfvrwNr9/ihNwE3E5Dp68nq5cQHkRTm5dXNpVz6+k5vJ9fxTNrirn1jFwiglw0tveMtLtmcRZ3vrSFzPhQpk2IZNnO6u7XIoNdHJ8dT4jLQUyoh8dX7qWotpXNpQ1877ypLN9Vw7Kuh2h1LZ18+b9reeoLi7j9uU0cPymOVzeXs7tr5HyQy8Ft50zl/R1VJEQE85Pn7UWnbjllMhfPSyE2LIjSulYqm9pJCA8aK7Vj76AnmbdPaFf7oBN6wKnA45ZlVQFYllVzQJmOmV2JvGggHHilq30pcJ8x5jHgqa62D4HvGWPSsBOBOw4s+XE4BpLQexl41Bjzj67tm4CXBn1GOXoFhUF4Epz7G3uVsNZaCI6Gs38JkanQUDKqE3pBbicXz0vl2IwYmtq9TIgKJjrUw52Xzua97ZV8tLuGtJhQokJcnDUjmVc22Um9k3ITOHVKAvPSo9le3kSnz88lx6Tw1OpiUqKDSYgIYkNRPR6X4f18uHhuGlGhKmQqIkMgKh3KNkJMFkw5F7a9aLdPPgMmLoCmCnv6mMgIczsdTJ1gFxI/NiOGG06chMEwMTak3xUD92n3+ViaX828idF86dTJbC9vJCMujFmpkcRH2F+uTp6SBFOgvL6FnZXNPLpib69jfLCzmns/l0dxfSv5FU24nYYbT5jE8l3VTE+JZM3eOuLCPHzxlMm8ta2CZ9eV8JXTJtPc4aOisQ0Li00l9eRXNOO3LILdTt7dXskZ05PISRr9JURkAILDITIFEnIhZR6UrLFXvz3uevB2wLHXQHvTIQ8jImNPYmQwiQcZhRYfHvSxibz9BbmcZMTZtY2nJEd21/q79/3d3Hp6Ln99eydN7V7iwz184eRsfv/adgB8XcP3dlU1k1/ZxG8/PYdVhbVUNrRz8pQE/ruiEK/fwuVwsKO8iVlp0ZTUl3HOzGSy4sN4fUs5DW2d/N/Jk9lR0UhhTQsn5yYQFeJhUkI4X0uLZmdlE/9bW0KQy8GG4nq2ljZyYm5CdzIP7EUeX9xQypKceCKCfVwxP52chHCK69p4Y0sFE2NDufXRtZTUtxEX5uEPl83lhNyEQf93HyETD7N9qNwHXGxZ1jpjzDXAyQCWZd1sjFkAnAesMsYca1nWf4wxy7vaXjTG3AQUA+n7HS+tq+2QBpLQ+zZwI/bQQID12CvdivQWMQHKN4MFXHgXlK6BzjZ47Xtdib7fBTrCATmwVkJ6TChXLsjgU3np/PKlLXz/mXwWTorlK6fl4DAwLz2apnYv33t6I5VN7QC4nYY/XzGPqsZ2vv+/TYC9COWtp+eypayBhZP61m8QETlsIZEQlQL4Yd5nIX0+dLbaK44/coW9KFGCCrtLYAW5nOQkDiwRFhXi4epFmdz+7CaCXA4mxoby4c5qTr06r0/fpKhQ1hc1cP6cCTy1uudzb5DLQYjbyc8vnklJXSvGGGqa28mKD6PD52f6hAjOnjmBX72ylbZOP1fOn8g/3t3FppKe2QVfOyOXBz7cQ1VTBzNSIjltaiIrC2qYGBdK0MckJGWM8Pvtz6yhCRA7GRZ/BVrrYPUD8NHddp+86+yEX4hWCheRj5eXGcsfL5/L717bTqfXT1JkEI/dtJB3tldR3tDGH17fTmO7l4y4ULLjwzk5N4HFk+MJD3JijOH0qQnUNnv51SvbSI0J4ecXz+TOl7dS1dTBebMnUFJnTwP+69s77ROWN/HR7hruumIea/fWkRYTwree6KmlfOrURE6dmsiGonqKalsI8Tipb+m7runstCg+yK9medeovmC3g2+fPZXvPLWBmFAPn1uUyW9e3UZ1cwf/9/Bqnv/yku4k5ihViD3Ntr/2I/Em8LQx5neWZVV3TbndXwRQaoxxA5+hKxlnjMm2LGs5sNwYcw6QboyJAnZZlvUnY8xEYDZwF5BjjMnq2vdyYEC1/wayyq2/K4OYDXwaiAeeHMjBZZxxOCE4CkJi4b+XQfN+01qaq6BmJ2QsDFx8R8jtdHDt4ixCg9w8sXIvBvhUXjpbyxtpbPN2J/MAOn0WD3xYQFpMz9Bky4K7391Frp7ui8hQis2Eljqo3Aqv3977tXWPwCnfC0BQIoN37qxk2jp93PvebvyWxa8+OYe56dH99j0+O46wIBfRIW5e3ljGxLhQPr84i9+/vp1TpiTyq1e2EeZxEhPmobS+ldvOmcpPLpzB9oom2jrtQuRJUcFs+qj3Ilb/Wrqbi+emct8He9hU0sCpUxMpqmmhtqmD5LEx7Ug+TmQK1BdCXA7MuQy87fD8V3v3WfVvmPXJnrp7IiIHER7k4qK5qZyYk4DfsroXT3I7Hdzz3i5CPE5On57ETSdmMyU5giU58Ty7tpj7PyzAb1ncds5UTp6awIJJsTiNYV1xPUFdZZp+++o27rpiHj99YUuvc/r8FuuK6jhrRjJ3vZnf67U3t1Zw6xm5hLqdzM+K5Z73djMhqu+oxIy4MO59f0/3dlunnydXF3HatERe2VROUW0LKVHBlNS30djupaSudbQn9L5L7xp6AC1d7YNmWdYmY8zPgXeMMT5gDbBnvy4/AJYDlV1/7vvC/+uuRS8M8AawDnvA3GeNMZ1AGXCHZVleY8wt2FN1ncC/LMvaNJDYDprQM8bkAld0/VQBj3a9mVMGcmAZpxKmQNUOe7rtgTr7LiYx1qTGhPK1M3I5b1Yyj6zYyxOr9nL9kize3lbVp29FYzvZCb0Xw2hq9/ZZoU9E5IglTIYdL/dtb64El1bklLElMSKYm0/K5tJjUnE7HR9bAD082M2iyfEsmBTH+bNTuP+D3Xz5kTX89OKZLN1RxVdPz+GBDwsob2jjU8emkxIVwkubyokK6Sl94fP7+xy3obWT8P1WL6xt7sDtchAZrJIZRwVH1/TaZX+HplKISOnbx/LbiT4RkQGKCet9v8pJiuDnF8+ioa2TiGBXd8mJuPAgrl0yifNmpxDkdhAVYu+37/WUqGA+tzjT/u7ocBDkdhIR1Dd1E+y2+++b7ru/7IQwPrtwIk7j4Lazp/LO9orue2JjWyfnz06hqa1vWZbdlc3Mz7QHoBXVtpLcldDzOB0Dno4cKHvuPO8/mbe9AHbNvInYI/O+eyQLYuxjWdb9wP0Hee1vwN/6af9EP93v7Po5sO+LwIuHG9fHjdDbCrwHnG9ZVj6AMebWwz2BjDMh0ZAwDWZ8AjY83tPu9EBs9kF3G2umJEfy9dNzKaprJcTtxOuHBw4oyn3ZcWnc887uXm0ZcaFMThzVTzVEZCwKCofEqfRZGnTGJZouJmNWQsTAV9pzOgzHZMSQHhvCjSdl4zKGRdlxtHb6uWD2BDp9fpzGYBwGy4IQj5O06GCK6tpwOhwEuRy0e3sSe6dNS+KD/J5C5MlRIWTFhxIaPJBqNTImxGTASd+CgqX2w4/wJHsBt33ip0DC9MDFJyJHBbfL0T1i70AHq+WXlRDOlZFBFNW2EuR0MDEujE6fxQ0PrOzuEx3q5tiMGELcTl7dXM7m/cpGxIV5mJseTWyYfd4bT5zEObOS8fstPnVsGo3tXmqa2ilr6PvQ4oTcBFYW2INz5k2M5p73duEw8JOLZpAVP/q/x3Yl7444gTdWGOvANZX3vWDMxdhzdxdjL4zxX+CflmVljVh0/cjLy7NWrlx56I4SWEUrYe3DsOlpiM6AE78B8dPsUSRHoeY2L69tKecPr2+nud3H1YsyiAp20e6zuOfdXVQ0tjMlKZw7PzGbeRn6ci3j2qCHqOr6fwi1hVDwPrz/e2itgblX2QtlxOdA6IGlPkRkV2UTS/OrqG3uYEZqFH9+M5/dVc2cPTOJ2anRfP9/Gwl2Oblq4USmJUdw2vSk7lEUMihHNEVh2O4BdXth0zMQnQ6r74fiVZB5ApzwDUidN/TnExEZhPZOH2v21vHe9kpiwzwsyYlnSrK9+NSO8kbueiuft7ZWMHdiNN88cwqz0qI/9njN7V6eXVdMUW0b93+wh6Z2L0smx7EgK4673srnphMnccb0JCob20mKCiYnMfxjF7U6BE1RGyYHTeh1dzAmDLgIe+rtqcADwNOWZb06/OH1pS90Y0hDGTSWgHHaSb3Q6EBHNOzqWjro9PlJiAhmb00zZQ3tBDkNToeDlJgQYj5m2pDIOKGE3nDytkPFVnuqmDscoibYo/dE5JCa2jppaOukud1HXUsnbqfB7XQQE+YmJTr00AeQQxmdCT0Anw9K1wEWuEIhOhWCI4fnXCIiw6Dd66O2pYPIYDehnoGNJm/r9FFQ3UxdSycel4OcxHBqmjswxpAaHYLDMWR5OCX0hslAFsVoxh6y+B9jTAzwKexCfgFJ6MkYEpls/4wj+9f5SY8NIz129A9LFpGjiCsIUuYEOgqRMSk82E24auSNT04npB0T6ChERAYtyOUkOfLwFm0Kdju7R/nto/vg2OI4nM6WZdValnW3ZVmnDVdAIiIiIiIiIiIicnCHldA7XMaYs40x24wx+caY2w7S59PGmM3GmE3GmHFTvFBERERERERERGQwhm2pLmOME/gLcAZQBKwwxjxrWdbm/frkAN8BFluWVWuMSRyueERERERERERERI6EMeZ2oMmyrN8M0fH+BZwPVFiWNXOg+w3nCL35QL5lWbssy+rAXiX3ogP63AD8xbKsWgDLsiqGMR4REREREREREZHR5D7g7MPdaTgTeqnA3v22i7ra9pcL5Bpjlhpjlhlj+n0DxpgbjTErjTErKysrhylcEREZbXT9FxEZv3QPEBGRw3J71JXcHrWH26P8XX9eORSHNcZcbYxZb4xZZ4x58IDXbjDGrOh67UljTGhX+6eMMRu72t/tapthjPnIGLO263g5AJZlvQvUHG5cw1pDbwBcQA5wMnAFcI8xJvrATl0LceRZlpWXkJAwshGKiEjA6PovIjJ+6R4gIiIDZifv7gEyANP15z1HmtQzxswAvg+calnWHOArB3R5yrKs47pe2wJc19X+Q+CsrvYLu9puBv5oWdZcIA974NugDWdCrxhI3287rattf0XAs5ZldVqWtRvYjp3gExERERERERERGYg7gNAD2kK72o/EqcDjlmVVAViWdeBIupnGmPeMMRuAzwAzutqXAvcZY24AnF1tHwLfNcZ8G8iwLKv1SAIbzoTeCiDHGJNljPEAlwPPHtDnGezReRhj4rGn4O4axphEREREREREROToMvEw24fKfcAtlmXNAn4MBANYlnUz9si+dGCVMSbOsqz/YI/WawVeNMaceiQnHraEnmVZXuAW4BXsYYePWZa1yRjzE2PMvuGGrwDVxpjNwFvANy3Lqh6umERERERERERE5KhTeJjtA/Um8CljTByAMSb2gNcjgFJjjBt7hB5d/bIty1puWdYPgUog3RgzCdhlWdafgP8Bs48kMNeR7HwolmW9CLx4QNsP9/vdAr7W9SMiIiIiIiIiInK4votdQ2//abctXe2D1jUw7efAO8YYH7AG2LNflx8Ay7GTdsuxE3wAv+5a9MIAbwDrgG8DnzXGdAJldE0HNsY8gj17Nd4YUwT8yLKsew8Vm7FzamNHXl6etXLlykCHISIig2MGu6Ou/yIiY9qgr/+ge4CIyBh2RNf/w2IvgHEH9jTbQuC73F7/nxE7/wgb1hF6IiIiIiIiIiIiw85O3h21CbwDDeeiGCIiIiIiIiIiIjLElNATEREREREREREZQ5TQExERERERERERGUOU0BMRERERERERERlDlNATEREREREREREZQ5TQExERERERERERGUOU0BMRERERERERERlDlNATEREREREREREZQ5TQExERERERERERGUOU0BMRERERERERERlDlNATEREREREREREZQ5TQExERERERERERGUOU0BMRERERERERERlDlNATEREREREREREZQ5TQExERERERERERGUOU0BMRERERERERERlDlNATEREREREREREZQ5TQExERERERERERGUOU0BMRERERERERERlDlNATEREREREREREZQ5TQExERERERERERGUOU0BMRERERERERERlDlNATEREREREREREZQ5TQExERERERERERGUOU0BMRERERERERERlDlNATEREREREREREZQ5TQExERERERERERGUOU0BMRERERERERERlDlNATEREREREREREZQ5TQExERERERERERGUOU0BMRERERERERERlDhjWhZ4w52xizzRiTb4y5rZ/XrzHGVBpj1nb9XD+c8YiIiIiIiIiIiIx1ruE6sDHGCfwFOAMoAlYYY561LGvzAV0ftSzrluGKQ0RERERERERE5GgynCP05gP5lmXtsiyrA/gvcNEwnk9EREREREREROSoN5wJvVRg737bRV1tB7rUGLPeGPOEMSa9vwMZY240xqw0xqysrKwcjlhFRGQU0vVfRGT80j1ARETk4AK9KMZzQKZlWbOB14D7++tkWdbdlmXlWZaVl5CQMKIBiohI4Oj6LyIyfukeICIicnDDmdArBvYfcZfW1dbNsqxqy7Lauzb/CRw7jPGIiIiIiIiIiIiMecOZ0FsB5BhjsowxHuBy4Nn9OxhjJuy3eSGwZRjjERERERERERERGfOGbZVby7K8xphbgFcAJ/Avy7I2GWN+Aqy0LOtZ4MvGmAsBL1ADXDNc8YiIiIiIiIiIiBwNhi2hB2BZ1ovAiwe0/XC/378DfGc4Y5Dxqbi2lfrWTpIig4gLDwp0OBIo3nao3WP/HpMJLv1bEBEZEbUF0N4IkakQGhPoaMY8y7IorGmhpcNHWnQIESHuQIc0trTWQX0RBIXbnwdGoeqmdsob2okJdTMhOiTQ4YiIyBgwrAk9kZHm9fl5Y0sFtz21ntqWTrITwvj9ZXOZnRYd6NBkpDWUwnu/hZX32tvzroaTvgVR/S22LSIiQ8LbAVv+By98HdrqIXkWXPw3+08ZlOZ2L0+vKeaOF7fQ0uHjuMxYfvGJmUxOjAh0aGNDxWZ45hYoWQVBEXD2nTDzUnCPnqTZmsJavvroWgqqW4gL8/Cr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\n",
      "text/plain": [
       "<Figure size 1276.97x288 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_title = \"100 Permutations, Friday Afternoon PortScan dataset\"\n",
    "\n",
    "g = sns.pairplot(\n",
    "    data=concatenated,\n",
    "    y_vars=['Accuracy'],\n",
    "    x_vars=['Anderson_Darling_dist', 'CVM_dist','DTS_dist'],\n",
    "    hue='dataset',\n",
    "    height=4,\n",
    "    aspect=1.4\n",
    ")\n",
    "g.fig.suptitle(plot_title, y=1.08, fontsize='x-large')\n",
    "\n",
    "sns.pairplot(\n",
    "    data=concatenated,\n",
    "    y_vars=['Accuracy'],\n",
    "    x_vars=['Kolmogorov_Smirnov_dist','Kuiper_dist', 'Wasserstein_dist'],\n",
    "    hue='dataset',\n",
    "    height=4,\n",
    "    aspect=1.4\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Seaborn lineplot\n",
    "\n",
    "A Seaborn lineplot is just a normal lineplot graph, where the x and y axis can be defined, and a hue for colouring and differentiating each class can be defined on a column.\n",
    "\n",
    "The **markers=True** parameter defines an \"Object determining how to draw the markers for different levels of the style variable. Setting to True will use default markers\" (Seaborn docs).\n",
    "\n",
    "The **dashes=False** parameter just prevents dashing lines being used, which can make the plot less pleasing-to-the-eye.\n",
    "\n",
    "The **err_style=\"bars\"** parameter defines that the std should be shown as bars, instead of the default which can be really distracting. The **ci=40** parameter is linked to this: \"Show error bars instead of error bands and plot the 68% confidence interval (standard error)\" (Seaborn docs).\n",
    "\n",
    "The **estimator=\"mean\"** parameter just denotes that each point should plot the mean value, if multiple points lie on the exact same x-axis level i.e. 2 points with exactly 98.8687% accuracy for example. The distance of these 2 points will be used to calculate a mean value, and this mean value will be plotted.\n",
    "\n",
    "See docs here: https://seaborn.pydata.org/generated/seaborn.lineplot.html#seaborn.lineplot\n",
    "\n",
    "The **plt.figure(figsize=(14,8))** just defines the plot/ graph size, in inches on the screen. (14, 8) is 14 inch width and 8 inch height. Used in Matplotlib, see: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.figure.html\n",
    "\n",
    "### What do the below graphs show?\n",
    "\n",
    "**All the lineplots below show the accuracy plotted against each ECDF-based statistical distance measure, where each data point is 1 permutation**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Accuracy', ylabel='Anderson_Darling_dist'>"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0QAAAHgCAYAAACFC63/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAACbI0lEQVR4nOzdd3hUVf7H8feZ9IRAKhAIvUMglAgCCgp2QaWpa0VdbOvqNldd3V3rrq6u+9N1LWDFThFULFixAIr03iEkdEIC6W3O74+bCgFCmMmkfF7PM89M7sy995vouvnknPM9xlqLiIiIiIhIY+TydQEiIiIiIiK+okAkIiIiIiKNlgKRiIiIiIg0WgpEIiIiIiLSaCkQiYiIiIhIo6VAJCIiIiIijZa/rws4VTExMbZ9+/a+LkNEREREROqoJUuWHLDWxlb1Xr0PRO3bt2fx4sW+LkNEREREROooY0zysd7TlDkREREREWm0FIhERERERKTRUiASEREREZFGq96vIRIRERERaewKCwtJTU0lLy/P16X4VHBwMPHx8QQEBFT7HAUiEREREZF6LjU1lfDwcNq3b48xxtfl+IS1lrS0NFJTU+nQoUO1z9OUORERERGRei4vL4/o6OhGG4YAjDFER0ef9CiZApGIiIiISAPQmMNQqZr8DBSIRERERESkzIMPPshTTz11zPdnz57N2rVrPXrP7du3884773j0mtWlQCQiIiIiItWmQCQiIiIiIg3KY489RteuXTnjjDPYsGEDAFOmTOG0004jMTGRcePGkZOTw4IFC/joo4+4++676du3L1u2bKnycwDTp08nISGBxMREhg0bBkBxcTF33303p512Gn369OGll14C4N577+WHH36gb9++/Oc//6nV712BSERERESkEVuyZAnvvfcey5cv59NPP+WXX34BYOzYsfzyyy+sWLGCHj168MorrzBkyBAuueQSnnzySZYvX06nTp2q/BzAww8/zNy5c1mxYgUfffQRAK+88grNmjXjl19+4ZdffmHKlCls27aNxx9/nDPPPJPly5fz+9//vla/f7XdFhERERFpxH744QfGjBlDaGgoAJdccgkAq1ev5oEHHiAjI4OsrCzOP//8Ks8/1ueGDh3KxIkTufzyyxk7diwAX3zxBStXrmTGjBkAHDp0iE2bNhEYGOjtb/OYFIhEREREROQo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\n",
      "text/plain": [
       "<Figure size 1008x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(14,8))\n",
    "sns.lineplot(data=concatenated, x='Accuracy', y='Anderson_Darling_dist', hue=\"dataset\", style=\"dataset\",\n",
    "    markers=True, dashes=False, err_style=\"bars\", ci=40, estimator=\"mean\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Accuracy', ylabel='CVM_dist'>"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1EAAAHgCAYAAABEjOdTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAACplklEQVR4nOzdd3hU1b7G8e+eSSaNkIQktCQ0QTqhhI6o2FERpFkRC/Zy9OqxH7vH7rEhiiiighQFEQsqRREQCL33klBDCoS0STL7/rEnIYQACSmT8n6eJ08me3b5TTz3uXlZa/2WYZomIiIiIiIiUjw2TxcgIiIiIiJSlShEiYiIiIiIlIBClIiIiIiISAkoRImIiIiIiJSAQpSIiIiIiEgJKESJiIiIiIiUgJenC/CEsLAws0mTJp4uQ0REREREKqnly5cfNk0zvKj3amSIatKkCbGxsZ4uQ0REREREKinDMHaf6j1N5xMRERERESkBhSgREREREZESUIgSEREREREpgRq5JkpEREREpCbLzs4mPj6ezMxMT5ficb6+vkRGRuLt7V3saxSiRERERERqmPj4eAIDA2nSpAmGYXi6HI8xTZPExETi4+Np2rRpsa/TdD4RERERkRomMzOT0NDQGh2gAAzDIDQ0tMQjcgpRIiIiIiI1UE0PUHnO5vegECUiIiIiIqXy/PPP89Zbb53y/RkzZrBhw4YyfeauXbuYOHFimd6zuBSiRERERESkXClEiYiIiIhIjffKK69w7rnn0qdPHzZv3gzA2LFj6dq1K9HR0QwePJj09HQWLVrEzJkzeeyxx+jYsSPbt28v8jyAqVOn0q5dO6Kjo+nbty8Aubm5PPbYY3Tt2pUOHTrwySefAPDEE0+wYMECOnbsyLvvvluhn10hSkRERERESmT58uV8++23rFq1ip9//plly5YBcO2117Js2TJWr15N69atGTduHL169WLAgAG8+eabrFq1inPOOafI8wBefPFFZs+ezerVq5k5cyYA48aNIygoiGXLlrFs2TLGjh3Lzp07ee211zjvvPNYtWoVDz/8cIV+frU4FxERERGRElmwYAGDBg3C398fgAEDBgCwbt06nnnmGVJSUjh27BiXXXZZkdef6rzevXszcuRIhg0bxrXXXgvAb7/9xpo1a5g2bRoAR44cYevWrTgcjvL+mKekECUiIiIiImVi5MiRzJgxg+joaMaPH8/8+fNLdN6YMWNYsmQJP/30E126dGH58uWYpskHH3xwUiA71b0rgqbziYiIiIhIifTt25cZM2aQkZFBamoqP/74IwCpqak0aNCA7Oxsvvnmm/zzAwMDSU1Nzf/5VOdt376d7t278+KLLxIeHk5cXByXXXYZH3/8MdnZ2QBs2bKFtLS0k+5ZkTQSJSIiIiIiJdK5c2eGDx9OdHQ0devWpWvXrgC89NJLdO/enfDwcLp3754fcq677jpGjRrF+++/z7Rp00553mOPPcbWrVsxTZOLLrqI6OhoOnTowK5du+jcuTOmaRIeHs6MGTPo0KEDdrud6OhoRo4cWaHrogzTNCvsYZVFTEyMGRsb6+kyqo+MFPALPvm1iIiIiFRKGzdupHXr1p4uo9Io6vdhGMZy0zRjijpf0/mkdI7shTVTIDvz+GtnuqerEhEREREpN5rOJ2cvIwU2/gjzXoGQxvDrE+DlA+2uBYe/p6sTERERESkXClFy9nwCwTcIBnwAE4dZx+5ZDAFhnq1LRERERKQcaTqfnL310yGsOcx54fixVd9oOp+IiIiIVGsKUXJ20pPAyxf2LLGm8N29ELrdCbsXQuYRT1cnIiIiIlJuNJ1Pzs6cF2D1FLh3MURfZ03h63mf1Vzih/thyGfgF+LpKkVEREREypxGoqTk9q6A5V9CzEio0+T4GqiQJmDmws4/YfLNkJPlwSJFREREpKp5/vnneeutt8rsfr/++istW7akefPmvPbaa2V2X4UoKRmXC35+FALC4YInTn6/aV8YOBp2LYAf7oMauA+ZiIiISHUzY+Veer82l6ZP/ETv1+YyY+VeT5d0Rrm5udx333388ssvbNiwgUmTJrFhw4YyubdClJTMyq9g73K49CWrM19ROgyDfs/C2qkw96WKrU9EREREytSMlXt58vu17E3JwAT2pmTw5PdryyRITZgwgQ4dOhAdHc3NN998wntjx46la9euREdHM3jwYNLTreZlU6dOpV27dkRHR9O3b18A1q9fT7du3ejYsSMdOnRg69atLF26lObNm9OsWTMcDgfXXXcdP/zwQ6lrBq2JkpJIT4I/nodGPaHD8NOfe97/QcoeWPA2BEVBzK0VUqKIiIiIlMwLP65nw76jp3x/5Z4UnLmuE45lZOfy72lrmLR0T5HXtGlYm+eubnva565fv56XX36ZRYsWERYWRlJSEu+//37++9deey2jRo0C4JlnnmHcuHE88MADvPjii8yePZuIiAhSUlIAGDNmDA899BA33ngjTqeT3NxcVq9eTVRUVP79IiMjWbJkyWlrKi6NREnxzX0ZMlOg/5tgGKc/1zDgyneg+SXw0//Blt8qpEQRERERKVuFA9SZjhfX3LlzGTp0KGFh1vr6OnXqnPD+unXrOO+882jfvj3ffPMN69evB6B3796MHDmSsWPHkpubC0DPnj159dVXef3119m9ezd+fn6lqu1MNBIlxbNvFcR+brUxr9++eNfYvWDoeBjfH6aOhFt/hoYdy69GERERESmxM40Y9X5tLntTMk46HhHsx+S7epZXWYwcOZIZM2YQHR3N+PHjmT9/PmCNOi1ZsoSffvqJLl26sHz5cm644Qa6d+/OTz/9RP/+/fnkk0+IiIggLi4u/37x8fFERESUSW0aiZIzy28mEQYXPlWya31qwQ1TwL8OTBxmTfETERERkSrjscta4udtP+GYn7edxy5rWar79uvXj6lTp5KYmAhAUlLSCe+npqbSoEEDsrOz+eabb/KPb9++ne7du/Piiy8SHh5OXFwcO3bsoFmzZjz44INcc801rFmzhq5du7J161Z27tyJ0+nk22+/ZcCAAaWqOY9GouTMVk+E+GVwzWjwCy759YH14cZpMO5S+HoI3D5be0iJiIiIVBEDO1mjN2/O3sy+lAwaBvvx2GUt84+frbZt2/L0009z/vnnY7fb6dSpE02aNMl//6WXXqJ79+6Eh4fTvXt3UlNTAXjsscfYunUrpmly0UUXER0dzeuvv85XX32Ft7c39evX56mnnsLLy4sPP/yQyy67jNzcXG677Tbatj39qFtxGWYNbEEdExNjxsbGerqMqiEjGT6IgTrN4LbZYCvF4OXOBfDVIGjUA276Drx8yq5OERERESm2jRs30rp1a0+XUWkU9fswDGO5aZoxRZ2v6XxyevNehYwkuPKt0gUogKbnwcCPtYeUiIiIiFRpms4np7Z/DSz7DGJugwbRZXPPDkPhyB6Y8yIEN4KL/lM29xURERERqSAKUVI004SfH7PWLvV7pmzv3ecR7SElIiIiIlWWQpQUbfW3EPcPDPig7JtAGAb0fxuO7rP2kKodAedeWrbPEBEREREpJ1oTJSfLPAK//wciYqDjTeXz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\n",
      "text/plain": [
       "<Figure size 1008x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(14,8))\n",
    "sns.lineplot(data=concatenated, x='Accuracy', y='CVM_dist', hue=\"dataset\", style=\"dataset\",\n",
    "    markers=True, dashes=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Accuracy', ylabel='DTS_dist'>"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0EAAAHrCAYAAAAJ5ZZ4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAB1+0lEQVR4nO3deXiU5b3/8fc9mezbBBK2hAACshNWEai7rUut1n1XWqttbbWnPT9re1pbq21P7Xq6uxx7FOu+W7EudbegsijIIrIGAkJCSEJmss/cvz+emZBAQhLI7J/XdXHN5Jknz3xnMgnzmft+7q+x1iIiIiIiIpIsXNEuQEREREREJJIUgkREREREJKkoBImIiIiISFJRCBIRERERkaSiECQiIiIiIklFIUhERERERJJK3IYgY8zfjDGVxpjVvdz/ImPMWmPMGmPMQ+GuT0REREREYpOJ1z5BxpjjAS+w0Fo7uYd9xwKPASdba2uMMYOstZWRqFNERERERGJL3I4EWWvfAvZ23GaMGW2MedEYs9wY87YxZnzwpmuBP1tra4LfqwAkIiIiIpKk4jYEdeNu4AZr7Uzg/wF/CW4/GjjaGPNvY8y7xpjTo1ahiIiIiIhElTvaBfQXY0wOMA943BgT2pwevHQDY4ETgRLgLWPMFGttbYTLFBERERGRKEuYEIQzqlVrrZ3WxW0VwHvW2lZgizHmE5xQtDSC9YmIiIiISAxImOlw1tp9OAHnQgDjKAve/AzOKBDGmEKc6XGbo1CmiIiIiIhEWdyGIGPMw8ASYJwxpsIYcw1wOXCNMWYlsAY4J7j7S0C1MWYt8Dpwk7W2Ohp1i4iIiIhIdMXtEtkiIiIiIiKHI25HgkRERERERA6HQpCIiIiIiCSVuFwdrrCw0I4cOTLaZYiIiIiISIxavnz5HmttUVe3xWUIGjlyJMuWLYt2GSIiIiIiEqOMMeXd3abpcCIiIiIiklQUgkREREREJKkoBImIiIiISFKJy3OCRERERESSXWtrKxUVFTQ1NUW7lKjKyMigpKSE1NTUXn+PQpCIiIiISByqqKggNzeXkSNHYoyJdjlRYa2lurqaiooKRo0a1evv03Q4EREREZE41NTUxMCBA5M2AAEYYxg4cGCfR8MUgkRERERE4lQyB6CQw3kOFIJERERERJLcrbfeyq9//etub3/mmWdYu3Ztv97n1q1beeihh/r1mL2lECQiIiIiIoekECQiIiIiInHvZz/7GUcffTSf+cxnWL9+PQD33HMPs2fPpqysjPPPP5+GhgYWL17Mc889x0033cS0adPYtGlTl/sBPP7440yePJmysjKOP/54APx+PzfddBOzZ89m6tSp3HXXXQB873vf4+2332batGn87ne/i+hjVwgSEREREUkyy5cv55FHHuHDDz/khRdeYOnSpQCcd955LF26lJUrVzJhwgTuvfde5s2bx9lnn82vfvUrPvzwQ0aPHt3lfgC33XYbL730EitXruS5554D4N577yU/P5+lS5eydOlS7rnnHrZs2cIvfvELjjvuOD788EO+/e1vR/Txa4lsEREREZEk8/bbb3PuueeSlZUFwNlnnw3A6tWr+eEPf0htbS1er5fTTjuty+/vbr/58+ezYMECLrroIs477zwAXn75ZVatWsUTTzwBQF1dHRs2bCAtLS3cD7NbYQ1Bxpi/AWcBldbayd3scyLwP0AqsMdae0I4axIRERERka4tWLCAZ555hrKyMu677z7eeOONPu1355138t5777Fo0SJmzpzJ8uXLsdbyxz/+8aBA1d2xIyHc0+HuA07v7kZjjAf4C3C2tXYScGGY6xERERERSXrHH388zzzzDI2NjdTX1/OPf/wDgPr6eoYOHUpraysPPvhg+/65ubnU19e3f93dfps2bWLOnDncdtttFBUVsX37dk477TT++te/0traCsAnn3yCz+c76JiRFNaRIGvtW8aYkYfY5TLgKWvttuD+leGsR0REREREYMaMGVx88cWUlZUxaNAgZs+eDcDtt9/OnDlzKCoqYs6cOe0h5ZJLLuHaa6/lD3/4A0888US3+910001s2LABay2nnHIKZWVlTJ06la1btzJjxgystRQVFfHMM88wdepUUlJSKCsrY8GCBRE9L8hYa8N7B04Ier6r6XDGmP/BmQY3CcgFfm+tXdjTMWfNmmWXLVvWz5UmscZayPQcfF1EREREYta6deuYMGFCtMuICV09F8aY5dbaWV3tH+3V4dzATODzwGnALcaYo7va0RhznTFmmTFmWVVVVSRrTGx1O2DVY9DatP96S0O0qxIRERERCZtoh6AK4CVrrc9auwd4Cyjrakdr7d3W2lnW2llFRUURLTJhNdbCx8/Da7fDxn/B/WfB8r9Bq0KQiIiI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SERERERiV7RD0A5geIevS4LbDmKtvdtaO8taO6uoKEon/sc6b6hHULRCUPBHWateQSIiIiISu6Idgp4DrgquEncsUGet/TTKNcWv9pGgKIXE9FzILNB0OBERERGJae5wHtwY8zBwIlBojKkAfgykAlhr7wReAM4ENgINwJfCWU/C8wZDULRGgkDLZIuIiIhIzAtrCLLWXtrD7Rb4RjhrSCqhVdmi1ScInBBU9Un07l9EREREpAfRng4n/cm7GzI84E6LXg2eEeoVJCIiIiIxTSEokUSzUWqIpxTaGsG3J7p1iIiIiIh0QyEokUSzUWqIegWJiIiISIxTCEoksTISBFCnECQiIiIisUkhKJH4qqIfgvJDvYIUgkREREQkNikEJYrWJmjeF92V4QAy8pzFGRSCRERERCRGKQQlivZGqVEeCQL1ChIRERGRmKYQlCi8oR5BCkEiIiIiIoeiEJQo2keCojwdDtQrSERERERimkJQovDudi5jZSSotQEaqqNdiYiIiIjIQRSCEkX7dLhYGAlSryARERERiV0KQYnCVwnp+ZCaEe1KFIJEREREJKYpBCWKWGiUGuJRryARERERiV0KQYkiFhqlhmTkO/8UgkREREQkBikEJQpvZWycDxSiZbJFREREJEYpBCUKXwxNh4P9y2SLiIiIiMQYhaBE0NYMTXWxsTx2SGgkSL2CRERERCTGKAQlAl9weexYaJQa4imFVh807I12JSIiIiIinSgEJQJvpXMZayNBAHWaEiciIiIisUUhKBGEQlAsnROUr2WyRURERCQ2KQQlAl9oJCjGpsOBQpCIiIiIxByFoEQQiyNBmR5IV68gEREREYk9CkGJwFcF6XmQmhntSjpTryARERERiUEKQYkg1hqlhigEiYiIiEgM6nUIMsaM6s02iQJfVWxNhQtRryARERERiUF9GQl6sottT/RXIXIEYnkkqMULjTXRrkREREREpJ27px2MMeOBSUC+Mea8DjflARnhKkz6wFcJo46LdhUH67hCXNaA6NYiIiIiIhLUYwgCxgFnAR7gCx221wPXhqEm6Yu2FmekJZYapYZ4OvQKGjYtqqWIiIiIiIT0GIKstc8Czxpj5lprl0SgJukLX5VzmROj0+FAiyOIiIiISEzpyzlB5xpj8owxqcaYV40xVcaYK8JWmfROe6PUGBwJyvA4S3crBImI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\n",
      "text/plain": [
       "<Figure size 1008x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(14,8))\n",
    "sns.lineplot(data=concatenated, x='Accuracy', y='DTS_dist', hue=\"dataset\", style=\"dataset\",\n",
    "    markers=True, dashes=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Accuracy', ylabel='Kolmogorov_Smirnov_dist'>"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0EAAAHgCAYAAABjIma7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAACOcElEQVR4nOzdd3hUVf7H8fedSS8kIQk1lFClJXQUpFhWLIjSbBSxYF11d+0/111Xdy2ru7q2VVkbiAVQUCliRwREqaH3FmpISAjpyZzfHzcVAiRhJpPyeT3PPJm5c+feb8LK5sM553ssYwwiIiIiIiL1hcPbBYiIiIiIiFQnhSAREREREalXFIJERERERKReUQgSEREREZF6RSFIRERERETqFYUgERERERGpV3y8XUBVREVFmdatW3u7DBERERERqaFWrFhxxBgTXd57tTIEtW7dmuXLl3u7DBERERERqaEsy9p9qvc0HU5EREREROoVhSAREREREalXFIJERERERKReqZVrgkRERERE6ru8vDwSExPJzs72dileFRAQQExMDL6+vhX+jEKQiIiIiEgtlJiYSGhoKK1bt8ayLG+X4xXGGJKTk0lMTCQ2NrbCn9N0OBERERGRWig7O5vIyMh6G4AALMsiMjKy0qNhCkEiIiIiIrVUfQ5ARaryM1AIEhERERGp55544gleeOGFU74/e/ZsNmzY4NZ77tq1iw8//NCt16wohSARERERETkthSAREREREan1/vGPf9ChQwfOP/98Nm/eDMDkyZPp06cP8fHxjBo1iszMTJYsWcIXX3zBgw8+SPfu3dm+fXu55wHMmDGDrl27Eh8fz6BBgwAoKCjgwQcfpE+fPsTFxfHmm28C8Mgjj7Bo0SK6d+/Oiy++WK3fu0KQiIiIiEg9s2LFCj7++GNWr17NvHnz+O233wAYOXIkv/32G2vWrKFTp068/fbb9O/fn+HDh/P888+zevVq2rZtW+55AE8++SQLFixgzZo1fPHFFwC8/fbbhIWF8dtvv/Hbb78xefJkdu7cybPPPsvAgQNZvXo1f/zjH6v1+1eLbBERERGRembRokWMGDGCoKAgAIYPHw7AunXr+POf/0xqairHjx9n6NCh5X7+VOcNGDCAiRMncs011zBy5EgAvv76axISEpg5cyYAaWlpbN26FT8/P09/m6ekECQiIiIiIgBMnDiR2bNnEx8fz3vvvcePP/5YqfPeeOMNli1bxty5c+nVqxcrVqzAGMMrr7xyUqA61bWrg6bDiYiIiIjUM4MGDWL27NlkZWWRnp7Ol19+CUB6ejpNmzYlLy+PadOmFZ8fGhpKenp68etTnbd9+3b69evHk08+SXR0NHv37mXo0KH897//JS8vD4AtW7aQkZFx0jWrk0aCRERERETqmZ49e3LttdcSHx9Po0aN6NOnDwBPPfUU/fr1Izo6mn79+hWHlOuuu45Jkybx8ssvM3PmzFOe9+CDD7J161aMMVx00UXEx8cTFxfHrl276NmzJ8YYoqOjmT17NnFxcTidTuLj45k4cWK1rguyjDHVdjN36d27t1m+fLm3y6g7slIhMPzk5yIiIiJSY23cuJFOnTp5u4waobyfhWVZK4wxvcs7X9Ph6ru0fZAwHfKyS57nZnq7KhERERERj9F0uPosKxU2zYHv/w5hzeHrP4OPP3QdCX5B3q5ORERERMQjFILqs8Bw6DYGQhrDxzfYx+5cCsFRXi1LRERERMSTNB2uvstMhu/+VvJ6zUeaDiciIiIidZpCUH2WlQpbF9hT4CZ9D30nwa5FkKcQJCIiIiJ1l6bD1We+gZC6D0ZOhoZtwCcQrvi3psOJiIiISJ2mkaD6bNfPsOx1OLYf/IIhKBImXwB7lnm7MhERERGphZ544gleeOEFt13vq6++omPHjrRr145nn33WbddVCKrPtn4NPgHQeqD9uu8kCIqCH5/2bl0iIiIi4nazV+1jwLPfE/vIXAY8+z2zV+3zdkmnVVBQwN133838+fPZsGEDH330ERs2bHDLtRWC6itjYPN8iB1c0g7bLxjO/yPs+BF2LfZqeSIiIiLiPrNX7ePRz9ayLzULA+xLzeLRz9aedRCaMmUKcXFxxMfHM378+DLvTZ48mT59+hAfH8+oUaPIzLTXnc+YMYOuXbsSHx/PoEGDAFi/fj19+/ale/fuxMXFsXXrVn799VfatWtHmzZt8PPz47rrruPzzz8/q3qLaE1QfXVkC6TuhgH3lT3e+2ZY8jL88A+YOBcsyzv1iYiIiEiF/e3L9WzYf+yU76/ak0pugavMsay8Ah6amcBHv+4p9zOdmzXgr1d2OeU1169fz9///neWLFlCVFQUKSkpvPzyy8Xvjxw5kkmTJgHw5z//mbfffpt77rmHJ598kgULFtC8eXNSU1MBeOONN7jvvvsYO3Ysubm5FBQUsGbNGlq0aFF8vZiYGJYtc8+yDY0E1VdbFthf219S9rhfEAy8H3Yvhp0/VX9dIiIiIuJ2JwagMx2viO+//54xY8YQFWU31WrYsGGZ99etW8fAgQPp1q0b06ZNY/369QAMGDCAiRMnMnnyZAoKCgA477zzePrpp3nuuefYvXs3gYGBVa6rIjQSVF9tWQCNu0J4i5Pf63kj/PwS/PA0xA7SaJCIiIhIDXe6ERuAAc9+z77UrJOONw8P5JPbz/NITRMnTmT27NnEx8fz3nvv8eOPPwL2qM+yZcuYO3cuvXr1YsWKFdxwww3069ePuXPncvnll/Pmm2/SvHlz9u7dW3y9xMREmjdv7pbaNBJUH2Wlwp6lJ48CFfENgEH3w95fYPv31VqaiIiIiLjfg0M7EujrLHMs0NfJg0M7VvmaF154ITNmzCA5ORmAlJSUMu+np6fTtGlT8vLymDZtWvHx7du3069fP5588kmio6PZu3cvO3bsoE2bNtx7771cddVVJCQk0KdPH7Zu3crOnTvJzc3l448/Zvjw4VWutzSNBNVH278DUwAdLj31OT3Gl4wGtb1Qo0EiIiIitdjVPewRlOcXbGZ/ahbNwgN5cGjH4uNV0aVLFx577DEGDx6M0+mkR48etG7duvj9p556in79+hEdHU2/fv1IT08H4MEHH2Tr1q0YY7jooouIj4/nueeeY+rUqfj6+tKkSRP+7//+Dx8fH1599VWGDh1KQUEBN998M126nH7Eq6IsY4xbLlSdevfubZYvX+7tMmqvz26Drd/Ag9vA4Tz1eSvegy/vgxumQ4eh1VaeiIiIiJzZxo0b6dSpk7fLqBHK+1lYlrXCGNO7vPM1Ha6+cRXYAaj9704fgAC6j4XwVnanuFoYlkVEREREyqMQVN8kLoeslIqN7Dh9YfDDcGANbJ7n+dpERERERKqBQlB9s+UrsJzQ9qKKnR93LTRsAz88A66qt1AUEREREakpFILqm61fQ8vzIDC8Yuc7fWDwI3BoLWz60qOliYiIiIhUB4Wg+iR1LxxaV/kmB91GQ2R7jQaJiIiISJ2gEFSfbF1gfz1da+zyOJww5BFI2gjrP3N/XSIiIiIi1UghqD7Z8jVEtIao9pX/bJeREN0JfnzW7jAnIiIiInKCJ554ghdeeMFt17v55ptp1KgRXbt2dds1QSGo/sjNhJ0L7VGgqmx86nDABY9C8lZYO9P99YmIiIiIZ+38CV4/F9IPlX1eg02cOJGvvvrK7ddVCKovdv4E+dnQ/pKqX+OcK6FxN1j4LBTku682EREREfGsnT/Bh9dA0lb49NaS5wufO6vLTpkyhbi4OOLj4xk/fnyZ9yZPnkyfPn2Ij49n1KhRZGZmAjBjxgy6du1KfHw8gwYNAmD9+vX07duX7t27ExcXx9atWwEYNGgQDRs2PKsay+Pj9itKzbR1AfgGQ+vzq36NotGgj2+AhE+gx1j31SciIiIiVTf/ETi49tTv718JeVn2890/gylsdrXyfUjaXP5nmnSDy5495SXXr1/P3//+d5YsWUJUVBQpKSm8/PLLxe+PHDmSSZMmAfDnP/+Zt99+m3vuuYcnn3ySBQsW0Lx5c1JTUwF44403uO+++xg7diy5ubkUFHh2+YVGguoDY2DLAmh7Afj4n921Ol4OTePtfzUoyHNPfSIiIiLiWY26QkAYWI6SAGQ5oGG7Kl/y+++/Z8yYMURFRQGcNGKzbt06Bg4cSLdu3Zg2bRrr168HYMCAAUycOJHJkycXh53zzjuPp59+mueee47du3cTGBhY5boqQiNB9cGh9XBsn93h7WxZFlzwmD2EuvpD6HXj2V9TRERERM7OaUZsgJLpcKbUdicOH2g9AIb92yMlTZw4kdmzZxMfH897773Hjz/+CNijPsuWLWPu3Ln06tWLFStWcMMNN9CvXz/mzp3L5ZdfzptvvsmFF17okbpAI0H1w5bCxWRnsx6otPaXQPPe8NPzkJ/jnmuKiIiIiOfMfwjyC2fx+ASC0w8KcmHD7Cpf8sILL2TGjBkkJycDkJKSUub99PR0mjZtSl5eHtOmTSs+vn37dvr168eTTz5JdHQ0e/fuZceOHbRp04Z7772Xq666ioSEhCrXVREKQfXBlgXQrAeENnHP9SwLLvg/SNsLq6a655oiIiIi4jnjP7dn8ARFwog3oMd4+/mY96p8yS5duvDYY48xePBg4uPj+dOf/lTm/aeeeop+/foxYMAAzjnnnOLjDz74IN26daNr167079+f+Ph4pk+fTteuXenevTvr1q1jwoQJAFx//fWcd955bN68mZiYGN5+++0q11uaZYxxy4WqU+/evc3y5cu9XUbtkJEMz7eFwQ/bTQ3cxRh451JI3QP3rgLfAPddW0RERETOaOPGjXTq1MnbZdQI5f0sLMtaYYzpXd75Ggmq67Z9AxjoMNS91y0aDUrfb3cVERERERGpJRSC6rotX0FIY2ja3f3Xjh0Erc6HRf8qabkoIiIiIlLDKQTVZQV5sO17aP87e48fd7Mse4rd8UOw/B33X19ERERExAMUguqyPb9AThp0uNRz92h9PsQOhp9fhNwMz91HRERERE5SG9f3u1tVfgYKQXXZlq/s9odthnj2Phc8BhlJ8Otkz95HRERERIoFBASQnJxcr4OQMYbk5GQCAirXpEubpdZlW7+GVgPAP9Sz92nZD9pdDIv/A31u8fz9RERERISYmBgSExNJSkrydileFRAQQExMTKU+oxBUV6XsgCNboPct1XO/If8H/7sQlr0Jgx6onnuKiIiI1GO+vr7ExsZ6u4xaSdPh6qotX9tfO1xSPfeL6WWvPVryCmSnVc89RURERESqQCGortryFUR1gIZtqu+eQx6F7FT45Y3qu6eIiIiISCUpBNVFOemw62f3b5B6Js26wznDYOlrkHW0eu8tIiIiIlJBCkF10Y4fwZUH7as5BIE9GpSTZgchEREREZEaSCGoLtryFfiHQctzq//eTbpC56vhl/9CZkr1319ERERE5AwUguoal8tuitDuInD6eqeGIY/YG6cuedk79xcREREROQ2FoLrmwGrIOFz964FKa9QJuo6CZW/B8frdt15EREREah6FoLpmywLAgna/824dgx+G/CxY8h/v1iEiIiIicgKFoLpmy1fQoi8ER3q3jugO0O0a+PV/kH7Iu7WIiIiIiJSiEFSXpB+0p8O1r6YNUs9k8ENQkAs/v+jtSkREREREiikE1SVbv7a/drjUu3UUiWwL3a+H5e/Asf3erkZEREREBFAIqlu2LIAGMdC4i7crKTHoQTAFsOjf3q5ERERERARQCKo78nNg+w/Q4RKwLG9XUyKiNfQYByvfh9S93q5GREREREQhqM7Y9TPkZdScqXClDXwAjIFF//J2JSIiIiIiCkF1xtavwScAWg/0diUnC28BvW6EVVPh6C5vVyMiIiIi9ZxCUF1gDGyeD7GDwS/I29WUb+D9YDnhp+e9XYmIiIiI1HMKQXXBkS2Quhs6DPV2JafWoBn0vhlWfwTJ271djYiIiIjUYwpBdcGWBfbXmrI/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\n",
      "text/plain": [
       "<Figure size 1008x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(14,8))\n",
    "sns.lineplot(data=concatenated, x='Accuracy', y='Kolmogorov_Smirnov_dist', hue=\"dataset\", style=\"dataset\",\n",
    "    markers=True, dashes=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Accuracy', ylabel='Kuiper_dist'>"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0cAAAHgCAYAAABuPBb8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAACr2ElEQVR4nOzdd3hUVf7H8feZSSaddFoSCL0TSgAFUewoCCI2LMj+du3d1bXvurq69t5xLVhQsSCCvaCIDZAivZdQQwqE9GTu7487CQECBMjkTpLP63nyTObOnXu/wcJ8cs75HmNZFiIiIiIiIo2dy+kCREREREREAoHCkYiIiIiICApHIiIiIiIigMKRiIiIiIgIoHAkIiIiIiICKByJiIiIiIgAEOR0AbUpISHBSk1NdboMEREREREJYHPmzNluWVbi3sf9Ho6MMUOBpwA38IplWQ/u57zRwAdAP8uyZvuO3Q78FSgHrrMs68sD3Ss1NZXZs2fXZvkiIiIiItLAGGPWVXfcr+HIGOMGngNOBjKAWcaYKZZlLd7rvCjgeuC3Kse6AucD3YCWwDfGmI6WZZX7s2YREREREWmc/L3mqD+w0rKs1ZZllQDvAiOrOe8+4CGgqMqxkcC7lmUVW5a1Bljpu56IiIiIiEit83c4SgI2VHme4TtWyRjTB0ixLGvaob5XRERERESktjjakMEY4wIeB8YdwTUuAy4DaNWqVe0UJiIiIiJST5WWlpKRkUFRUdHBT27gQkNDSU5OJjg4uEbn+zscbQRSqjxP9h2rEAV0B6YbYwCaA1OMMSNq8F4ALMt6GXgZID093arN4kVERERE6puMjAyioqJITU3F9xm7UbIsi6ysLDIyMmjTpk2N3uPvaXWzgA7GmDbGGA92g4UpFS9alrXDsqwEy7JSLctKBX4FRvi61U0BzjfGhBhj2gAdgN/9XK+IiIiISL1WVFREfHx8ow5GAMYY4uPjD2kEza8jR5ZllRljrgG+xG7l/aplWYuMMfcCsy3LmnKA9y4yxrwPLAbKgKvVqU5ERERE5OAaezCqcKh/Dv4eOcKyrM8sy+poWVY7y7Lu9x37Z3XByLKsIRV7HPme3+97XyfLsj73d60iIiIiIrLbPffcw6OPPrrf1ydPnszixYv3+/rhWLt2Le+8806tXrOm/B6ORERERESkYVI4EhERERGRBuv++++nY8eOHHPMMSxbtgyA8ePH069fP9LS0hg9ejQFBQX8/PPPTJkyhVtuuYVevXqxatWqas8DmDRpEt27dyctLY1jjz0WgPLycm655Rb69etHz549eemllwC47bbbmDFjBr169eKJJ56o059d4UhERERERACYM2cO7777LvPmzeOzzz5j1qxZAJx11lnMmjWL+fPn06VLF/73v/8xcOBARowYwSOPPMK8efNo165dtecB3HvvvXz55ZfMnz+fKVPs1TX/+9//iI6OZtasWcyaNYvx48ezZs0aHnzwQQYPHsy8efO48cYb6/Tnd3SfIxERERERCRwzZsxg1KhRhIeHAzBixAgAFi5cyF133UVubi67du3i1FNPrfb9+ztv0KBBjBs3jnPPPZezzjoLgK+++ooFCxbwwQcfALBjxw5WrFiBx+Px94+5XwpHIiIiIiJyQOPGjWPy5MmkpaXx+uuvM3369EM678UXX+S3335j2rRp9O3blzlz5mBZFs8888w+QWt/164LmlYnIiIiIiIAHHvssUyePJnCwkLy8vL49NNPAcjLy6NFixaUlpby9ttvV54fFRVFXl5e5fP9nbdq1SoGDBjAvffeS2JiIhs2bODUU0/lhRdeoLS0FIDly5eTn5+/zzXrkkaOREREREQEgD59+nDeeeeRlpZG06ZN6devHwD33XcfAwYMIDExkQEDBlSGl/PPP59LL72Up59+mg8++GC/591yyy2sWLECy7I48cQTSUtLo2fPnqxdu5Y+ffpgWRaJiYlMnjyZnj174na7SUtLY9y4cXW67shYllVnN/O39PR0a/bs2Qc/MUB5vRZZ+SWUlJXjCXITH+HB5dIGXiIiIiJSc0uWLKFLly5OlxEwqvvzMMbMsSwrfe9zNXIUILxei2Vb87h0wmwycgpJjg1j/Nh0OjWLUkASEREREakDWnMUILbnF1cGI4CMnEIunTCbrPwShysTEREREWkcNHIUANZuzyenoKQyGFXIyCmkpKzcoapERERERBoXjRw5yOu1eH3mGk57agZZu4pJjg3b4/Xk2DAy84opVkASEREREfE7hSOHrM8qYMz4X7nn08X0bxNHz5QYxo9NrwxIybFhPHleL/796WLOfO5nlm91pp2hiIiIiEhjoWl1dczrtXjrt3U8+PlS3Mbw8OienJOejDGGhIgQPr5q0B7d6q46vj23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\n",
      "text/plain": [
       "<Figure size 1008x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(14,8))\n",
    "sns.lineplot(data=concatenated, x='Accuracy', y='Kuiper_dist', hue=\"dataset\", style=\"dataset\",\n",
    "    markers=True, dashes=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Accuracy', ylabel='Wasserstein_dist'>"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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7v+INRUNBALxtxJBRETiy29+8xvuvffesD3f66+/zogRIxg6dCi///3vw/a8SoIEmuo6/1hEYl6q3bbfWaAfnjyM7z6+RJPiRERkLy99sZVpv3+bwb+Yz7Tfv81LX2y1OqSD8vv9fO973+O1115j5cqVPPXUU6xcuTIsz60kKNnVb4Vlz0Jr8+6PfY1WRyUiXRAImPgDAe45b++zQEV5GZoUJyIie3npi63c8q+v2FrXhAlsrWviln99ddiJ0Lx58xg3bhylpaVcfvnle31u7ty5TJo0idLSUmbOnEljY/BnzOeee46xY8dSWlrK9OnTAVixYgVHH300Rx55JOPGjWPdunV8+umnDB06lJKSEhwOBxdddBH//ve/DyveEJ0JSmZNdbD6FXj7TsgrgVdvgpQ0GHsuODKsjk5EDqHa62NrXTN/eH0Nt80YjcuZSl1TK9vrgstS90yENClORCSx/e9/VrBy264Dfv6LzXX4/IG9bmtq9fPz55fx1KebO33M6P69+H/fHHPA51yxYgV33nknCxcuJD8/n5qaGu67776Oz5977rlcc801ANx66608/PDD/OAHP+D2229nwYIFDBgwgLq6OgBmz57NjTfeyKWXXorP58Pv97N06VIGDhzY8XyFhYV88sknh/y76AolQcnM6YKjroBeA+DxmcHbvvsxZOZbGpaIdI2vzU+110eVp4XrHlvScfupo3tz/yVH8bd31jFzwkDyMh30zk7D7Uy1MFoREbHSvgnQoW7virfffpvzzz+f/Pzgz465ubl7fX758uXceuut1NXV4fF4OO200wCYNm0aV155JRdccAHnnnsuAFOmTOG3v/0t5eXlnHvuuQwbNqzHcXWFkqBk11gN/71t9++XPgUn3KJKkEgccKTYeWHJFu6eOY6bX1hGeW2wAvS9E4fx3ppKvn/SMG544vOO2+fOmsiIPtmaEicikoAOVrEBmPb7t9la17Tf7QNcTp65bkpEYrryyit56aWXKC0t5dFHH+Xdd98FglWfTz75hPnz5zNhwgSWLFnCJZdcwuTJk5k/fz5nnnkmc+bMYcCAAWzZsqXj+crLyxkwYEBYYtOZoGQWaodLSYMrX4GpP4CyD6BVZ4JE4kGmw85V0wbzz4UbuW3GaJ6/fgqPfftonli0ieH9enHDE59TkJXGnMsn8MfzS9lR30xdk4YjiIgk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\n",
      "text/plain": [
       "<Figure size 1008x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(14,8))\n",
    "sns.lineplot(data=concatenated, x='Accuracy', y='Wasserstein_dist', hue=\"dataset\", style=\"dataset\",\n",
    "    markers=True, dashes=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Boxplot to show the variance in Anderson_darling distance between each class in the dataset. Just an example of what could be plotted further."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean Accuracy (Mu) = 71.06417448749542 %\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.boxplot(data=concatenated, x='dataset', y='Anderson_Darling_dist')\n",
    "\n",
    "accuracies = concatenated['Accuracy']\n",
    "mean_accuracy = accuracies[concatenated['dataset'] == 'class0'].mean()\n",
    "print('Mean Accuracy (Mu) =', mean_accuracy*100, '%')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**May add feature-importance plotting here, for future SafeML Python package to be made...**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
